Index: plugins/filebrowser/gedit-file-browser-widget.c
===================================================================
--- plugins/filebrowser/gedit-file-browser-widget.c	(revision 6610)
+++ plugins/filebrowser/gedit-file-browser-widget.c	(working copy)
@@ -337,7 +337,7 @@
 		location_free ((Location *) (loc->data));
 
 	if (obj->priv->current_location_menu_item)
-		gtk_widget_unref (obj->priv->current_location_menu_item);
+		g_object_unref (obj->priv->current_location_menu_item);
 
 	g_list_free (obj->priv->locations);
 
@@ -423,7 +423,7 @@
 			  G_STRUCT_OFFSET (GeditFileBrowserWidgetClass,
 					   uri_activated), NULL, NULL,
 			  g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1,
-			  GTK_TYPE_STRING);
+			  G_TYPE_STRING);
 	signals[ERROR] =
 	    g_signal_new ("error", G_OBJECT_CLASS_TYPE (object_class),
 			  G_SIGNAL_RUN_LAST,
@@ -443,7 +443,7 @@
 	                  G_TYPE_BOOLEAN,
 	                  2,
 	                  G_TYPE_OBJECT,
-	                  GTK_TYPE_POINTER);
+	                  G_TYPE_POINTER);
 
 	signals[CONFIRM_NO_TRASH] =
 	    g_signal_new ("confirm-no-trash", G_OBJECT_CLASS_TYPE (object_class),
@@ -455,7 +455,7 @@
 	                  gedit_file_browser_marshal_BOOL__POINTER,
 	                  G_TYPE_BOOLEAN,
 	                  1,
-	                  GTK_TYPE_POINTER);
+	                  G_TYPE_POINTER);
 
 	g_type_class_add_private (object_class,
 				  sizeof (GeditFileBrowserWidgetPrivate));
@@ -927,15 +927,9 @@
 
 	g_object_set (widget, "label", _("Previous location"), NULL);
 
-	gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (widget),
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Go to previous location"), NULL);
-	gtk_menu_tool_button_set_arrow_tooltip (GTK_MENU_TOOL_BUTTON
-						(widget),
-						GTK_TOOLBAR (toolbar)->
-						tooltips,
-						_("Go to a previously opened location"),
-						NULL);
+	gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (widget), _("Go to previous location"));
+	gtk_menu_tool_button_set_arrow_tooltip_text (GTK_MENU_TOOL_BUTTON (widget),
+						_("Go to a previously opened location"));
 
 	action =
 	    gtk_action_group_get_action (obj->priv->action_group_sensitive,
@@ -958,16 +952,9 @@
 
 	g_object_set (widget, "label", _("Next location"), NULL);
 
-	gtk_tool_item_set_tooltip (GTK_TOOL_ITEM (widget),
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Go to next location"), NULL);
-	gtk_menu_tool_button_set_arrow_tooltip (GTK_MENU_TOOL_BUTTON
-						(widget),
-						GTK_TOOLBAR (toolbar)->
-						tooltips,
-						_
-						("Go to a previously opened location"),
-						NULL);
+	gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (widget), _("Go to next location"));
+	gtk_menu_tool_button_set_arrow_tooltip_text (GTK_MENU_TOOL_BUTTON (widget),
+						_("Go to a previously opened location"));
 
 	action =
 	    gtk_action_group_get_action (obj->priv->action_group_sensitive,
@@ -1513,13 +1500,13 @@
 			gtk_menu_shell_prepend (GTK_MENU_SHELL (menu_to),
 						widget);
 
-			gtk_widget_unref (widget);
+			g_object_unref (widget);
 		}
 
 		widget = GTK_WIDGET (child->data);
 
 		/* Make sure the widget isn't destroyed when removed */
-		gtk_widget_ref (widget);
+		g_object_ref (widget);
 		gtk_container_remove (GTK_CONTAINER (menu_from), widget);
 
 		obj->priv->current_location_menu_item = widget;
Index: gedit/gedit-window.c
===================================================================
--- gedit/gedit-window.c	(revision 6610)
+++ gedit/gedit-window.c	(working copy)
@@ -1478,14 +1478,8 @@
 	 * but I can't see a better way and I don't want a differen GtkTooltip
 	 * just for this tool button.
 	 */
-	gtk_tool_item_set_tooltip (open_button,
-				   GTK_TOOLBAR (window->priv->toolbar)->tooltips,
-				   _("Open a file"),
-				   NULL);
-	gtk_menu_tool_button_set_arrow_tooltip (GTK_MENU_TOOL_BUTTON (open_button),
-						GTK_TOOLBAR (window->priv->toolbar)->tooltips,
-						_("Open a recently used file"),
-						NULL);
+	gtk_tool_item_set_tooltip_text (open_button, _("Open a file"));
+	gtk_menu_tool_button_set_arrow_tooltip_text (GTK_MENU_TOOL_BUTTON (open_button), _("Open a recently used file"));
 
 	action = gtk_action_group_get_action (window->priv->always_sensitive_action_group,
 					      "FileOpen");
Index: gedit/gedit-print-preview.c
===================================================================
--- gedit/gedit-print-preview.c	(revision 6610)
+++ gedit/gedit-print-preview.c	(working copy)
@@ -558,9 +558,8 @@
 	gtk_tool_button_set_label (GTK_TOOL_BUTTON (priv->prev),
 				   "P_revious Page");
 	gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->prev), TRUE);
-	gtk_tool_item_set_tooltip (priv->prev,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Show the previous page"), "");
+	gtk_tool_item_set_tooltip_text (priv->prev,
+				   _("Show the previous page"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->prev, -1);
 	g_signal_connect (priv->prev,
 			  "clicked",
@@ -572,9 +571,7 @@
 	gtk_tool_button_set_label (GTK_TOOL_BUTTON (priv->next),
 				   "_Next Page");
 	gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->next), TRUE);
-	gtk_tool_item_set_tooltip (priv->next,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Show the next page"), "");
+	gtk_tool_item_set_tooltip_text (priv->next, _("Show the next page"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->next, -1);
 	g_signal_connect (priv->next,
 			  "clicked",
@@ -639,9 +636,8 @@
 	gtk_tool_button_set_label (GTK_TOOL_BUTTON (priv->multi),
 				   "_Show Multiple Pages");
 	gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->multi), TRUE);
-	gtk_tool_item_set_tooltip (priv->multi,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Show multiple pages"), "");
+	gtk_tool_item_set_tooltip_text (priv->multi,
+				   _("Show multiple pages"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->multi, -1);
 	g_signal_connect (priv->multi,
 			  "clicked",
@@ -654,9 +650,8 @@
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), i, -1);
 
 	priv->zoom_one = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_100);
-	gtk_tool_item_set_tooltip (priv->zoom_one,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Zoom 1:1"), "");
+	gtk_tool_item_set_tooltip_text (priv->zoom_one,
+				   _("Zoom 1:1"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->zoom_one, -1);
 	g_signal_connect (priv->zoom_one,
 			  "clicked",
@@ -665,9 +660,8 @@
 	gtk_widget_show (GTK_WIDGET (priv->zoom_one));
 
 	priv->zoom_fit = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_FIT);
-	gtk_tool_item_set_tooltip (priv->zoom_fit,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Zoom to fit the whole page"), "");
+	gtk_tool_item_set_tooltip_text (priv->zoom_fit,
+				   _("Zoom to fit the whole page"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->zoom_fit, -1);
 	g_signal_connect (priv->zoom_fit,
 			  "clicked",
@@ -676,9 +670,8 @@
 	gtk_widget_show (GTK_WIDGET (priv->zoom_fit));
 
 	priv->zoom_in = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_IN);
-	gtk_tool_item_set_tooltip (priv->zoom_in,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Zoom the page in"), "");
+	gtk_tool_item_set_tooltip_text (priv->zoom_in,
+				   _("Zoom the page in"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->zoom_in, -1);
 	g_signal_connect (priv->zoom_in,
 			  "clicked",
@@ -687,9 +680,8 @@
 	gtk_widget_show (GTK_WIDGET (priv->zoom_in));
 
 	priv->zoom_out = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_OUT);
-	gtk_tool_item_set_tooltip (priv->zoom_out,
-				   GTK_TOOLBAR (toolbar)->tooltips,
-				   _("Zoom the page out"), "");
+	gtk_tool_item_set_tooltip_text (priv->zoom_out,
+				   _("Zoom the page out"));
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), priv->zoom_out, -1);
 	g_signal_connect (priv->zoom_out,
 			  "clicked",
@@ -704,8 +696,7 @@
 	i = gtk_tool_button_new (NULL, _("_Close Preview"));
 	gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (i), TRUE);
 	gtk_tool_item_set_is_important (i, TRUE);
-	gtk_tool_item_set_tooltip (i, GTK_TOOLBAR (toolbar)->tooltips, 
-				   _("Close print preview"), "");
+	gtk_tool_item_set_tooltip_text (i, _("Close print preview"));
 	g_signal_connect (i, "clicked",
 			  G_CALLBACK (close_button_clicked), preview);
 	gtk_widget_show (GTK_WIDGET (i));
Index: gedit/gedit-view.h
===================================================================
--- gedit/gedit-view.h	(revision 6610)
+++ gedit/gedit-view.h	(working copy)
@@ -80,14 +80,14 @@
 	gboolean (* start_interactive_goto_line)(GeditView       *view);
 	gboolean (* reset_searched_text)	(GeditView       *view);
 
-	void	 (* drop_uris)			(GeditView	 *view, 
+	void	 (* drop_uris)			(GeditView	 *view,
 						 gchar          **uri_list);
 };
 
 /*
  * Public methods
  */
-GtkType		 gedit_view_get_type     	(void) G_GNUC_CONST;
+GType		 gedit_view_get_type     	(void) G_GNUC_CONST;
 
 GtkWidget	*gedit_view_new			(GeditDocument   *doc);
 
Index: gedit/gedit-encodings-option-menu.c
===================================================================
--- gedit/gedit-encodings-option-menu.c	(revision 6610)
+++ gedit/gedit-encodings-option-menu.c	(working copy)
@@ -62,12 +62,12 @@
 };
 
 
-G_DEFINE_TYPE(GeditEncodingsOptionMenu, gedit_encodings_option_menu, GTK_TYPE_OPTION_MENU)
+G_DEFINE_TYPE(GeditEncodingsOptionMenu, gedit_encodings_option_menu, GTK_TYPE_COMBO_BOX)
 
 static void
-gedit_encodings_option_menu_set_property (GObject 	*object, 
+gedit_encodings_option_menu_set_property (GObject 	*object,
 					  guint 	 prop_id,
-			    		  const GValue *value, 
+			    		  const GValue *value,
 					  GParamSpec	*pspec)
 {
 	GeditEncodingsOptionMenu *om;
@@ -144,26 +144,31 @@
 }
 
 static void
-add_or_remove (GtkMenuItem              *menu_item,
-	       GeditEncodingsOptionMenu *option_menu)
+add_or_remove (GeditEncodingsOptionMenu *menu, GtkTreeModel *model)
 {
-	if (GTK_IS_RADIO_MENU_ITEM (menu_item))
+	GtkTreeIter iter;
+	gpointer p = NULL;
+
+	if ( gtk_combo_box_get_active_iter (GTK_COMBO_BOX (menu), &iter) )
+		gtk_tree_model_get (model, &iter, 1, &p, -1);
+
+	if (p != NULL)
 	{
-		option_menu->priv->activated_item = 
-			gtk_option_menu_get_history (GTK_OPTION_MENU (option_menu));
+		menu->priv->activated_item =
+			gtk_combo_box_get_active (GTK_COMBO_BOX (menu));
 	}
 	else
 	{
 		GtkWidget *dialog;
 
-		GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (option_menu));
-	
+		GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (menu));
+
 		if (!GTK_WIDGET_TOPLEVEL (toplevel))
-			toplevel = NULL;	
-		
-		gtk_option_menu_set_history (GTK_OPTION_MENU (option_menu),
-					     option_menu->priv->activated_item);
+			toplevel = NULL;
 
+		gtk_combo_box_set_active (GTK_COMBO_BOX (menu),
+								  menu->priv->activated_item);
+
 		dialog = gedit_encodings_dialog_new();
 
 		if (toplevel != NULL)
@@ -186,129 +191,95 @@
 		}
 
 		gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
-		
+
 		g_signal_connect (dialog,
 				  "response",
 				  G_CALLBACK (dialog_response_cb),
-				  option_menu);
+				  menu);
+		g_signal_handlers_disconnect_by_func (menu, add_or_remove, model);
 
 		gtk_widget_show (dialog);
 	}
 }
 
+static gboolean
+RowSeparatorFunc (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
+{
+	gchar *str;
+	gtk_tree_model_get (model, iter, 0, &str, -1);
+	if (str != NULL && strlen (str) !=0) return FALSE;
+	return TRUE;
+}
+
 static void
-update_menu (GeditEncodingsOptionMenu *option_menu)
+update_menu (GeditEncodingsOptionMenu *menu)
 {
-	GtkWidget *menu;
-	GtkWidget *menu_item;
-	GSList    *group = NULL;
+	GtkListStore *store;
 	GSList	  *encodings, *list;
 	gchar     *str;
+	GtkTreeIter iter;
+	GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
 
 	const GeditEncoding *utf8_encoding;
 	const GeditEncoding *current_encoding;
 
-	menu = gtk_menu_new ();
+	store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
 
 	encodings = list = gedit_prefs_manager_get_shown_in_menu_encodings ();
 
 	utf8_encoding = gedit_encoding_get_utf8 ();
 	current_encoding = gedit_encoding_get_current ();
 
-	if (!option_menu->priv->save_mode)
+	if (!menu->priv->save_mode)
 	{
-		menu_item = gtk_radio_menu_item_new_with_label (group, _("Auto Detected"));
-		group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item));
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter, 0, _("Auto Detected"), 1, NULL, -1);
 
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-		gtk_widget_show (menu_item);
-
-		g_signal_connect (menu_item,
-				  "activate",
-				  G_CALLBACK (add_or_remove),
-				  option_menu);
-
-		menu_item = gtk_separator_menu_item_new ();
-
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-		gtk_widget_show (menu_item);
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter, 0, "", 1, NULL, -1);
 	}
 
 	if (current_encoding != utf8_encoding)
 		str = gedit_encoding_to_string (utf8_encoding);
 	else
-		str = g_strdup_printf (_("Current Locale (%s)"), 
+		str = g_strdup_printf (_("Current Locale (%s)"),
 				       gedit_encoding_get_charset (utf8_encoding));
 
-	menu_item = gtk_radio_menu_item_new_with_label (group, str);
+	gtk_list_store_append (store, &iter);
+	gtk_list_store_set (store, &iter, 0, str, 1, utf8_encoding, -1);
 
-	g_signal_connect (menu_item,
-			  "activate",
-			  G_CALLBACK (add_or_remove),
-			  option_menu);
-
-	group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item));
-
-	g_object_set_data (G_OBJECT (menu_item), ENCODING_KEY, (gpointer)utf8_encoding);
-
-	gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-	gtk_widget_show (menu_item);
-
 	g_free (str);
 
-	if ((utf8_encoding != current_encoding) && 
+	if ((utf8_encoding != current_encoding) &&
 	    (current_encoding != NULL))
 	{
-		str = g_strdup_printf (_("Current Locale (%s)"), 
+		str = g_strdup_printf (_("Current Locale (%s)"),
 				       gedit_encoding_get_charset (current_encoding));
 
-		menu_item = gtk_radio_menu_item_new_with_label (group, str);
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter, 0, str, 1, current_encoding, -1);
 
-		g_signal_connect (menu_item,
-				  "activate",
-				  G_CALLBACK (add_or_remove),
-				  option_menu);
-
-		group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item));
-
-		g_object_set_data (G_OBJECT (menu_item), 
-				   ENCODING_KEY, (gpointer)current_encoding);
-
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-		gtk_widget_show (menu_item);
-
 		g_free (str);
 	}
 
 	while (list != NULL)
 	{
 		const GeditEncoding *enc;
-		
+
 		enc = (const GeditEncoding *)list->data;
 
-		if ((enc != current_encoding) && 
-		    (enc != utf8_encoding) && 
+		if ((enc != current_encoding) &&
+		    (enc != utf8_encoding) &&
 		    (enc != NULL))
 		{
 			str = gedit_encoding_to_string (enc);
 
-			menu_item = gtk_radio_menu_item_new_with_label (group, str);
+			gtk_list_store_append (store, &iter);
+			gtk_list_store_set (store, &iter, 0, str, 1, enc, -1);
 
-			g_signal_connect (menu_item,
-					  "activate",
-					  G_CALLBACK (add_or_remove),
-					  option_menu);
-
-			group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menu_item));
-
-			g_object_set_data (G_OBJECT (menu_item), ENCODING_KEY, (gpointer)enc);
-
-			gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-			gtk_widget_show (menu_item);
-
 			g_free (str);
 		}
-		
+
 		list = g_slist_next (list);
 	}
 
@@ -316,22 +287,20 @@
 
 	if (gedit_prefs_manager_shown_in_menu_encodings_can_set ())
 	{
-		menu_item = gtk_separator_menu_item_new ();
-	      	gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-		gtk_widget_show (menu_item);
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter, 0, "", 1, NULL, -1);
 
-		menu_item = gtk_menu_item_new_with_mnemonic (_("Add or _Remove..."));
-
-		g_signal_connect (menu_item,
-				  "activate",
-				  G_CALLBACK (add_or_remove),
-				  option_menu);
-	
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-		gtk_widget_show (menu_item);
+		gtk_list_store_append (store, &iter);
+		gtk_list_store_set (store, &iter, 0, _("Add or Remove..."), 1, NULL, -1);
 	}
 
-	gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
+	gtk_cell_layout_clear (GTK_CELL_LAYOUT (menu));
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (menu), renderer, TRUE);
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (menu), renderer, "text", 0, NULL);
+	gtk_combo_box_set_model (GTK_COMBO_BOX (menu), GTK_TREE_MODEL (store));
+	gtk_combo_box_set_active (GTK_COMBO_BOX (menu), 0);
+	gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (menu), RowSeparatorFunc, NULL, NULL);
+	g_signal_connect (menu, "changed", G_CALLBACK (add_or_remove), store);
 }
 
 static void
@@ -351,29 +320,17 @@
 const GeditEncoding *
 gedit_encodings_option_menu_get_selected_encoding (GeditEncodingsOptionMenu *menu)
 {
-	GtkWidget *active_widget;
+	GtkTreeIter iter;
 
-	GtkOptionMenu *option_menu;
-
 	g_return_val_if_fail (GEDIT_IS_ENCODINGS_OPTION_MENU (menu), NULL);
 
-	option_menu = GTK_OPTION_MENU (menu);
-	g_return_val_if_fail (option_menu != NULL, NULL);
-	
-	if (option_menu->menu)
-    	{
-      		active_widget = gtk_menu_get_active (GTK_MENU (option_menu->menu));
-
-	      	if (active_widget != NULL)
+	if ( gtk_combo_box_get_active_iter (GTK_COMBO_BOX (menu), &iter) )
 		{
 			const GeditEncoding *ret;
+			gtk_tree_model_get (gtk_combo_box_get_model (GTK_COMBO_BOX (menu)), &iter, 1, &ret, -1);
 
-			ret = (const GeditEncoding *)g_object_get_data (G_OBJECT (active_widget), 
-									ENCODING_KEY);
-
 			return ret;
 		}
-	}
 
 	return NULL;
 }
@@ -382,38 +339,27 @@
 gedit_encodings_option_menu_set_selected_encoding (GeditEncodingsOptionMenu *menu,
 						   const GeditEncoding      *encoding)
 {
-	GtkOptionMenu *option_menu;
-	GList *list;
-	gint i;
-
+	GtkTreeIter iter;
+	GtkTreeModel *model;
+	gboolean b;
 	g_return_if_fail (GEDIT_IS_ENCODINGS_OPTION_MENU (menu));
+	g_return_if_fail (GTK_IS_COMBO_BOX (menu));
 
-	option_menu = GTK_OPTION_MENU (menu);
-	g_return_if_fail (option_menu != NULL);
-
-	list = GTK_MENU_SHELL (option_menu->menu)->children;
-	i = 0;
-	while (list != NULL)
+	model = gtk_combo_box_get_model (GTK_COMBO_BOX (menu));
+	b = gtk_tree_model_get_iter_first (model, &iter);
+	while (b)
 	{
-		GtkWidget *menu_item;
 		const GeditEncoding *enc;
 
-		menu_item = GTK_WIDGET (list->data);
+		gtk_tree_model_get (model, &iter, 1, &enc, -1);
 
-		enc = (const GeditEncoding *)g_object_get_data (G_OBJECT (menu_item), 
-								ENCODING_KEY);
-
 		if (enc == encoding)
 		{
-			gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), TRUE);
+			gtk_combo_box_set_active_iter (GTK_COMBO_BOX (menu), &iter);
 
-			gtk_option_menu_set_history (GTK_OPTION_MENU (menu), i);
-
 			return;
 		}
 
-		++i;
-
-		list = g_list_next (list);
+		b = gtk_tree_model_iter_next (model, &iter);
 	}
 }
Index: gedit/gedit-encodings-option-menu.h
===================================================================
--- gedit/gedit-encodings-option-menu.h	(revision 6610)
+++ gedit/gedit-encodings-option-menu.h	(working copy)
@@ -52,14 +52,14 @@
 
 struct _GeditEncodingsOptionMenu
 {
-	GtkOptionMenu			 parent;
+	GtkComboBox			 parent;
 
 	GeditEncodingsOptionMenuPrivate	*priv;
 };
 
 struct _GeditEncodingsOptionMenuClass
 {
-	GtkOptionMenuClass		 parent_class;
+	GtkComboBoxClass		 parent_class;
 };
 
 GType		     gedit_encodings_option_menu_get_type		(void) G_GNUC_CONST;
