priv->current_page = (GtkAssistantPage *)g_list_nth_data (priv->pages, page_num);
g_signal_emit (assistant, signals [PREPARE], 0, priv->current_page->page);
+ /* do not continue if the prepare signal handler has already changed the
+ * current page */
+ if (priv->current_page != (GtkAssistantPage *)g_list_nth_data (priv->pages, page_num))
+ return;
update_title_state (assistant);
gtk_button_set_image (GTK_BUTTON (priv->forward),
gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_BUTTON));
priv->back = gtk_button_new_with_mnemonic (_("Go _Back"));
- gtk_button_set_image (GTK_BUTTON (priv->forward),
+ gtk_button_set_image (GTK_BUTTON (priv->back),
gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_BUTTON));
priv->cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
priv->last = gtk_button_new_with_mnemonic (_("_Finish"));
- gtk_button_set_image (GTK_BUTTON (priv->forward),
+ gtk_button_set_image (GTK_BUTTON (priv->last),
gtk_image_new_from_stock (GTK_STOCK_GOTO_LAST, GTK_ICON_SIZE_BUTTON));
gtk_widget_set_can_default (priv->close, TRUE);
gtk_widget_set_can_default (priv->apply, TRUE);