Index: components/html-editor/dialog.c
===================================================================
--- components/html-editor/dialog.c	(revision 8346)
+++ components/html-editor/dialog.c	(working copy)
@@ -28,25 +28,17 @@
 #endif
 #include "dialog.h"
 
-/*
-  somewhat ugly (those *** :) so I feel like I may comment
-  as first argument it takes poiter to pointer on Dialog struct
-  which MUST contains GtkDialog * as first field
-
-  it is bassicaly the same trick as used in GtkObject's
-*/
-
 void
-run_dialog (GtkDialog ***dialog, GtkHTML *html, GtkHTMLControlData *cd, DialogCtor ctor, const gchar *title)
+run_dialog (GtkDialog **dialog, GtkHTML *html, GtkHTMLControlData *cd, DialogCtor ctor, const gchar *title)
 {
-	if (*dialog) {
-		gtk_window_set_title (GTK_WINDOW (**dialog), title);
-		gtk_widget_show (GTK_WIDGET (**dialog));
-		gdk_window_raise (GTK_WIDGET (**dialog)->window);
+	if (dialog) {
+		gtk_window_set_title (GTK_WINDOW (*dialog), title);
+		gtk_widget_show (GTK_WIDGET (*dialog));
+		gdk_window_raise (GTK_WIDGET (*dialog)->window);
 	} else {
-		*dialog = ctor (html, cd);
-		gtk_window_set_title (GTK_WINDOW (**dialog), title);
-		gtk_widget_show (GTK_WIDGET (**dialog));
+		dialog = ctor (html, cd);
+		gtk_window_set_title (GTK_WINDOW (*dialog), title);
+		gtk_widget_show (GTK_WIDGET (*dialog));
 	}
-	gtk_dialog_run (**dialog);
+	gtk_dialog_run (*dialog);
 }
Index: components/html-editor/utils.c
===================================================================
--- components/html-editor/utils.c	(revision 8346)
+++ components/html-editor/utils.c	(working copy)
@@ -38,7 +38,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
-#include <gnome.h>
+#include <unistd.h>
 #include "utils.h"
 #include "properties.h"
 
Index: components/html-editor/properties.h
===================================================================
--- components/html-editor/properties.h	(revision 8346)
+++ components/html-editor/properties.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_EDIT_PROPERTIES_H_
 #define _GTK_HTML_EDIT_PROPERTIES_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 typedef GtkWidget * (*GtkHTMLEditPropertyCreateFunc) (GtkHTMLControlData *cd, gpointer *own_data);
@@ -53,7 +53,7 @@ enum _GtkHTMLEditPropertyType {
 
 GtkHTMLEditPropertiesDialog * gtk_html_edit_properties_dialog_new          (GtkHTMLControlData *cd,
 									    gchar *title,
-									    gchar *icon_path);
+									    gchar *icon_name);
 void                          gtk_html_edit_properties_dialog_destroy      (GtkHTMLEditPropertiesDialog *d);
 
 void                          gtk_html_edit_properties_dialog_add_entry    (GtkHTMLEditPropertiesDialog *d,
Index: components/html-editor/toolbar.c
===================================================================
--- components/html-editor/toolbar.c	(revision 8346)
+++ components/html-editor/toolbar.c	(working copy)
@@ -29,10 +29,11 @@
 #else
 #include <glib/gi18n.h>
 #endif
-#include <gnome.h>
+#include <libgnomeui/gnome-app-helper.h>
 #include <bonobo.h>
 
 #include "gi-color-combo.h"
+#include "paragraph-style.h"
 #include "toolbar.h"
 #include "utils.h"
 #include "htmlcolor.h"
@@ -43,183 +44,68 @@
 
 #define EDITOR_TOOLBAR_PATH "/HTMLEditor"
 
-
-/* Paragraph style option menu.  */
-
-static struct {
-	GtkHTMLParagraphStyle style;
-	const gchar *description;
-} paragraph_style_items[] = {
-	{ GTK_HTML_PARAGRAPH_STYLE_NORMAL, N_("Normal") },
-	{ GTK_HTML_PARAGRAPH_STYLE_PRE, N_("Preformat") },
-	{ GTK_HTML_PARAGRAPH_STYLE_ITEMDOTTED, N_("Bulleted List") },
-	{ GTK_HTML_PARAGRAPH_STYLE_ITEMDIGIT, N_("Numbered List") },
-	{ GTK_HTML_PARAGRAPH_STYLE_ITEMROMAN, N_("Roman List") },
-	{ GTK_HTML_PARAGRAPH_STYLE_ITEMALPHA, N_("Alphabetical List") },
-	{ GTK_HTML_PARAGRAPH_STYLE_H1, N_("Header 1") },
-	{ GTK_HTML_PARAGRAPH_STYLE_H2, N_("Header 2") },
-	{ GTK_HTML_PARAGRAPH_STYLE_H3, N_("Header 3") },
-	{ GTK_HTML_PARAGRAPH_STYLE_H4, N_("Header 4") },
-	{ GTK_HTML_PARAGRAPH_STYLE_H5, N_("Header 5") },
-	{ GTK_HTML_PARAGRAPH_STYLE_H6, N_("Header 6") },
-	{ GTK_HTML_PARAGRAPH_STYLE_ADDRESS, N_("Address") },
-	{ GTK_HTML_PARAGRAPH_STYLE_NORMAL, NULL },
-};
-
 static void
-paragraph_style_changed_cb (GtkHTML *html,
-			    GtkHTMLParagraphStyle style,
-			    gpointer data)
-{
-	GtkOptionMenu *option_menu;
-	guint i;
-
-	option_menu = GTK_OPTION_MENU (data);
-
-	for (i = 0; paragraph_style_items[i].description != NULL; i++) {
-		if (paragraph_style_items[i].style == style) {
-			gtk_option_menu_set_history (option_menu, i);
-			return;
-		}
-	}
-
-	g_warning ("Editor component toolbar: unknown paragraph style %d", style);
-}
-
-static void
-paragraph_style_menu_item_activated_cb (GtkWidget *widget,
-					gpointer data)
+active_font_size_changed (GtkComboBox *combo_box,
+                          GtkHTMLControlData *cd)
 {
-	GtkHTMLParagraphStyle style;
-	GtkHTML *html;
-
-	html = GTK_HTML (data);
-	style = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "paragraph_style_value"));
+	GtkHTMLFontStyle style = GTK_HTML_FONT_STYLE_SIZE_1;
 
-	/* g_warning ("Setting paragraph style to %d.", style); */
-
-	gtk_html_set_paragraph_style (html, style);
-}
-
-static void
-paragraph_style_menu_item_update (GtkWidget *widget, gpointer format_html)
-{
-	GtkHTMLParagraphStyle style;
-	gint sensitive;
-
-	style = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (widget), "paragraph_style_value"));
-	
-	sensitive = (format_html
-		     || style == GTK_HTML_PARAGRAPH_STYLE_NORMAL
-		     || style == GTK_HTML_PARAGRAPH_STYLE_PRE
-		     || style == GTK_HTML_PARAGRAPH_STYLE_ITEMDOTTED
-		     || style == GTK_HTML_PARAGRAPH_STYLE_ITEMROMAN
-		     || style == GTK_HTML_PARAGRAPH_STYLE_ITEMDIGIT
-		     || style == GTK_HTML_PARAGRAPH_STYLE_ITEMALPHA
-		     );
-
-	gtk_widget_set_sensitive (widget, sensitive);	
-}
-
-static void
-paragraph_style_option_menu_set_mode (GtkWidget *option_menu, gboolean format_html)
-{
-	GtkWidget *menu;
-	
-	menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (option_menu));
-	gtk_container_forall (GTK_CONTAINER (menu), 
-			      paragraph_style_menu_item_update, 
-			      GINT_TO_POINTER (format_html));
-}
-
-static GtkWidget *
-setup_paragraph_style_option_menu (GtkHTML *html)
-{
-	GtkWidget *option_menu;
-	GtkWidget *menu;
-	guint i;
-
-	option_menu = gtk_option_menu_new ();
-	menu = gtk_menu_new ();
-
-	for (i = 0; paragraph_style_items[i].description != NULL; i++) {
-		GtkWidget *menu_item;
-
-		menu_item = gtk_menu_item_new_with_label (_(paragraph_style_items[i].description));
-		gtk_widget_show (menu_item);
-
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
-
-		g_object_set_data (G_OBJECT (menu_item), "paragraph_style_value",
-				     GINT_TO_POINTER (paragraph_style_items[i].style));
-		g_signal_connect (menu_item, "activate", G_CALLBACK (paragraph_style_menu_item_activated_cb), html);
-	}
-
-	gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
-	g_signal_connect (html, "current_paragraph_style_changed", G_CALLBACK (paragraph_style_changed_cb), option_menu);
-	gtk_widget_show (option_menu);
-
-	return option_menu;
-}
-
-static void
-set_font_size (GtkWidget *w, GtkHTMLControlData *cd)
-{
-	GtkHTMLFontStyle style = GTK_HTML_FONT_STYLE_SIZE_1 + GPOINTER_TO_INT (g_object_get_data (G_OBJECT (w),
-												    "size"));
+	style += gtk_combo_box_get_active (combo_box);
 
 	if (!cd->block_font_style_change)
-		gtk_html_set_font_style (cd->html, GTK_HTML_FONT_STYLE_MAX & ~GTK_HTML_FONT_STYLE_SIZE_MASK, style);
+		gtk_html_set_font_style (cd->html,
+			GTK_HTML_FONT_STYLE_MAX &
+			~GTK_HTML_FONT_STYLE_SIZE_MASK,
+			style);
 }
 
 static void
-font_size_changed (GtkWidget *w, GtkHTMLParagraphStyle style, GtkHTMLControlData *cd)
+font_size_changed (GtkHTML *html,
+                   GtkHTMLParagraphStyle style,
+                   GtkHTMLControlData *cd)
 {
 	if (style == GTK_HTML_FONT_STYLE_DEFAULT)
 		style = GTK_HTML_FONT_STYLE_SIZE_3;
+	else
+		style &= GTK_HTML_FONT_STYLE_SIZE_MASK;
+
 	cd->block_font_style_change++;
-	gtk_option_menu_set_history (GTK_OPTION_MENU (cd->font_size_menu),
-				     (style & GTK_HTML_FONT_STYLE_SIZE_MASK) - GTK_HTML_FONT_STYLE_SIZE_1);
+
+	gtk_combo_box_set_active (
+		GTK_COMBO_BOX (cd->font_size_menu),
+		style - GTK_HTML_FONT_STYLE_SIZE_1);
+
 	cd->block_font_style_change--;
 }
 
 static GtkWidget *
-setup_font_size_option_menu (GtkHTMLControlData *cd)
+setup_font_size_combo_box (GtkHTMLControlData *cd)
 {
-	GtkWidget *option_menu;
-	GtkWidget *menu;
-	guint i;
-	gchar size [3];
+	GtkWidget *combo_box;
 
-	cd->font_size_menu = option_menu = gtk_option_menu_new ();
+	combo_box = gtk_combo_box_new_text ();
 
-	menu = gtk_menu_new ();
-	size [2] = 0;
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "-2");
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "-1");
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "+0");
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "+1");
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "+2");
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "+3");
+	gtk_combo_box_append_text (GTK_COMBO_BOX (combo_box), "+4");
 
-	for (i = 0; i < GTK_HTML_FONT_STYLE_SIZE_MAX; i++) {
-		GtkWidget *menu_item;
+	gtk_combo_box_set_active (GTK_COMBO_BOX (combo_box), 2);
 
-		size [0] = (i>1) ? '+' : '-';
-		size [1] = '0' + ((i>1) ? i - 2 : 2 - i);
+	g_signal_connect (
+		combo_box, "changed",
+		G_CALLBACK (active_font_size_changed), cd);
 
-		menu_item = gtk_menu_item_new_with_label (size);
-		gtk_widget_show (menu_item);
+	g_signal_connect (
+		cd->html, "insertion_font_style_changed",
+		G_CALLBACK (font_size_changed), cd);
 
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item);
+	gtk_widget_show (combo_box);
 
-		g_object_set_data (G_OBJECT (menu_item), "size",
-				     GINT_TO_POINTER (i));
-		g_signal_connect (menu_item, "activate", G_CALLBACK (set_font_size), cd);
-	}
-
-	gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu), menu);
-	gtk_option_menu_set_history (GTK_OPTION_MENU (option_menu), 2);
-
-	g_signal_connect (cd->html, "insertion_font_style_changed", G_CALLBACK (font_size_changed), cd);
-
-	gtk_widget_show (option_menu);
-
-	return option_menu;
+	return combo_box;
 }
 
 static void
@@ -524,11 +410,14 @@ enum EditorAlignmentButtons {
 };
 static GnomeUIInfo editor_toolbar_alignment_group[] = {
 	{ GNOME_APP_UI_ITEM, N_("Left align"), N_("Left justifies the paragraphs"),
-	  editor_toolbar_left_align_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_left_align_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_JUSTIFY_LEFT },
 	{ GNOME_APP_UI_ITEM, N_("Center"), N_("Center justifies the paragraphs"),
-	  editor_toolbar_center_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_center_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_JUSTIFY_CENTER },
 	{ GNOME_APP_UI_ITEM, N_("Right align"), N_("Right justifies the paragraphs"),
-	  editor_toolbar_right_align_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_right_align_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_JUSTIFY_RIGHT },
 	GNOMEUIINFO_END
 };
 
@@ -550,13 +439,17 @@ static GnomeUIInfo editor_toolbar_style_
 	{ GNOME_APP_UI_TOGGLEITEM, N_("Typewriter"), N_("Toggle typewriter font style"),
 	  editor_toolbar_tt_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
 	{ GNOME_APP_UI_TOGGLEITEM, N_("Bold"), N_("Makes the text bold"),
-	  editor_toolbar_bold_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_bold_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_BOLD },
 	{ GNOME_APP_UI_TOGGLEITEM, N_("Italic"), N_("Makes the text italic"),
-	  editor_toolbar_italic_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_italic_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_ITALIC },
 	{ GNOME_APP_UI_TOGGLEITEM, N_("Underline"), N_("Underlines the text"),
-	  editor_toolbar_underline_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_underline_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_UNDERLINE },
 	{ GNOME_APP_UI_TOGGLEITEM, N_("Strikeout"), N_("Strikes out the text"),
-	  editor_toolbar_strikeout_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_strikeout_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_STRIKETHROUGH },
 
 	GNOMEUIINFO_SEPARATOR,
 
@@ -565,9 +458,11 @@ static GnomeUIInfo editor_toolbar_style_
 	GNOMEUIINFO_SEPARATOR,
 
 	{ GNOME_APP_UI_ITEM, N_("Unindent"), N_("Indents the paragraphs less"),
-	  editor_toolbar_unindent_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_unindent_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_UNINDENT },
 	{ GNOME_APP_UI_ITEM, N_("Indent"), N_("Indents the paragraphs more"),
-	  editor_toolbar_indent_cb, NULL, NULL, GNOME_APP_PIXMAP_FILENAME },
+	  editor_toolbar_indent_cb, NULL, NULL, GNOME_APP_PIXMAP_STOCK,
+	  GTK_STOCK_INDENT },
 
 	GNOMEUIINFO_END
 };
@@ -597,24 +492,25 @@ indentation_changed (GtkWidget *w, guint
 static GtkWidget *
 create_style_toolbar (GtkHTMLControlData *cd)
 {
+	GtkIconInfo *icon_info;
 	GtkWidget *hbox;
 	gchar *domain;
-	gchar *filename;
 	
 	hbox = gtk_hbox_new (FALSE, 0);
 
 	cd->toolbar_style = gtk_toolbar_new ();
 	gtk_box_pack_start (GTK_BOX (hbox), cd->toolbar_style, TRUE, TRUE, 0);
 
-	cd->paragraph_option = setup_paragraph_style_option_menu (cd->html);
+	cd->paragraph_option = paragraph_style_combo_box_new (cd);
 	gtk_toolbar_prepend_space (GTK_TOOLBAR (cd->toolbar_style));
 	gtk_toolbar_prepend_widget (GTK_TOOLBAR (cd->toolbar_style),
 				    cd->paragraph_option,
 				    NULL, NULL);
 
+	cd->font_size_menu = setup_font_size_combo_box (cd);
 	gtk_toolbar_prepend_space (GTK_TOOLBAR (cd->toolbar_style));
 	gtk_toolbar_prepend_widget (GTK_TOOLBAR (cd->toolbar_style),
-				    setup_font_size_option_menu (cd),
+				    cd->font_size_menu,
 				    NULL, NULL);
 
 	/* 
@@ -624,21 +520,12 @@ create_style_toolbar (GtkHTMLControlData
 	domain = g_strdup (textdomain (NULL));
 	textdomain (GETTEXT_PACKAGE);
 	
-	filename = g_build_filename (GTKHTML_DATADIR, "icons", "font-tt-24.png", NULL);
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_TT].pixmap_info = filename;
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_BOLD].pixmap_info = gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_bold", 24, NULL, NULL);
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_ITALIC].pixmap_info = gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_italic", 24, NULL, NULL);
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_UNDERLINE].pixmap_info = gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_underlined", 24, NULL, NULL);
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_STRIKEOUT].pixmap_info = gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text-strikethrough", 24, NULL, NULL);
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_UNINDENT].pixmap_info = gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_unindent", 24, NULL, NULL);
-	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_INDENT].pixmap_info = gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_indent", 24, NULL, NULL);
-
-	((GnomeUIInfo *) editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_ALIGNMENT].moreinfo) [EDITOR_ALIGNMENT_LEFT].pixmap_info
-		= gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_left", 24, NULL, NULL);
-	((GnomeUIInfo *) editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_ALIGNMENT].moreinfo) [EDITOR_ALIGNMENT_CENTER].pixmap_info
-		= gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_center", 24, NULL, NULL);
-	((GnomeUIInfo *) editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_ALIGNMENT].moreinfo) [EDITOR_ALIGNMENT_RIGHT].pixmap_info
-		= gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_right", 24, NULL, NULL);
+	icon_info = gtk_icon_theme_lookup_icon (
+		gtk_icon_theme_get_default (),
+		"stock_text-monospaced", 24, 0);
+	editor_toolbar_style_uiinfo [EDITOR_TOOLBAR_TT].pixmap_info =
+		g_strdup (gtk_icon_info_get_filename (icon_info));
+	gtk_icon_info_free (icon_info);
 
 	gnome_app_fill_toolbar_with_data (GTK_TOOLBAR (cd->toolbar_style), editor_toolbar_style_uiinfo, NULL, cd);
 
@@ -732,10 +619,6 @@ toolbar_update_format (GtkHTMLControlDat
 	if (cd->toolbar_style)
 		gtk_container_foreach (GTK_CONTAINER (cd->toolbar_style), 
 		toolbar_item_update_sensitivity, cd);
-
-	if (cd->paragraph_option)
-		paragraph_style_option_menu_set_mode (cd->paragraph_option, 
-						      cd->format_html);
 }
 
 
Index: components/html-editor/link.h
===================================================================
--- components/html-editor/link.h	(revision 8346)
+++ components/html-editor/link.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_LINK_H_
 #define _GTK_HTML_LINK_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 GtkWidget             * link_properties      (GtkHTMLControlData *cd, gpointer *set_data);
Index: components/html-editor/spellchecker.c
===================================================================
--- components/html-editor/spellchecker.c	(revision 8346)
+++ components/html-editor/spellchecker.c	(working copy)
@@ -268,7 +268,7 @@ spell_has_control ()
 	rv = control != NULL;
 
 	if (control) {
-		gtk_object_sink (GTK_OBJECT (control));
+		g_object_ref_sink (control);
 	}
 	return rv;
 }
Index: components/html-editor/dialog.h
===================================================================
--- components/html-editor/dialog.h	(revision 8346)
+++ components/html-editor/dialog.h	(working copy)
@@ -27,9 +27,7 @@
 
 typedef GtkDialog ** (*DialogCtor)(GtkHTML *html, GtkHTMLControlData *cd);
 
-#define RUN_DIALOG(name,title) run_dialog ((GtkDialog ***)&cd-> name ## _dialog, cd->html, cd, (DialogCtor) gtk_html_ ## name ## _dialog_new, title)
-
-void       run_dialog         (GtkDialog          ***dialog,
+void       run_dialog         (GtkDialog           **dialog,
 			       GtkHTML              *html,
 			       GtkHTMLControlData   *cd,
 			       DialogCtor            ctor,
Index: components/html-editor/utils.h
===================================================================
--- components/html-editor/utils.h	(revision 8346)
+++ components/html-editor/utils.h	(working copy)
@@ -24,7 +24,6 @@
 #define _UTILS_H_
 
 #include <gtk/gtk.h>
-#include <libgnomeui/gnome-pixmap-entry.h>
 #include "gtkhtml.h"
 #include "control-data.h"
 
@@ -36,8 +35,6 @@ GtkWidget *sample_frame                 
 void       url_requested                           (GtkHTML           *html,
 						    const gchar       *url,
 						    GtkHTMLStream     *handle);
-void       our_gnome_pixmap_entry_set_last_pixmap  (GnomePixmapEntry  *entry);
-void       our_gnome_pixmap_entry_set_last_dir     (GnomePixmapEntry  *entry);
 
 GtkWidget *editor_hig_inner_hbox  (gchar     *text,
 				   GtkWidget *control);
Index: components/html-editor/paragraph.c
===================================================================
--- components/html-editor/paragraph.c	(revision 8346)
+++ components/html-editor/paragraph.c	(working copy)
@@ -30,6 +30,7 @@
 #include "htmlengine-save.h"
 #include "htmlselection.h"
 #include "paragraph.h"
+#include "paragraph-style.h"
 #include "properties.h"
 #include "utils.h"
 
@@ -40,15 +41,6 @@ struct _GtkHTMLEditParagraphProperties {
 typedef struct _GtkHTMLEditParagraphProperties GtkHTMLEditParagraphProperties;
 
 static void
-set_style (GtkWidget *w, GtkHTMLEditParagraphProperties *data)
-{
-	GtkHTMLParagraphStyle style = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (w), "style"));
-
-	if (gtk_html_get_paragraph_style (data->cd->html) != style)
-		gtk_html_set_paragraph_style (data->cd->html, style);
-}
-
-static void
 set_align (GtkWidget *w, GtkHTMLEditParagraphProperties *data)
 {
 	GtkHTMLParagraphAlignment align = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (w), "align"));
@@ -61,9 +53,8 @@ GtkWidget *
 paragraph_properties (GtkHTMLControlData *cd, gpointer *set_data)
 {
 	GtkHTMLEditParagraphProperties *data = g_new0 (GtkHTMLEditParagraphProperties, 1);
-	GtkWidget *hbox, *menu, *menuitem, *vbox, *radio, *table, *icon;
+	GtkWidget *hbox, *vbox, *radio, *table, *icon;
 	GSList *group;
-	gint h=0, i=0;
 
 	*set_data = data;
 	data->cd = cd;
@@ -72,42 +63,7 @@ paragraph_properties (GtkHTMLControlData
 	gtk_table_set_col_spacings (GTK_TABLE (table), 18);
 	gtk_table_set_row_spacings (GTK_TABLE (table), 18);
 
-	menu = gtk_menu_new ();
-
-#define ADD_SEP menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem)
-#undef ADD_ITEM
-#define ADD_ITEM(n,s) \
-	menuitem = gtk_menu_item_new_with_label (n); \
-        gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); \
-        gtk_widget_show (menuitem); \
-        if (gtk_html_get_paragraph_style (data->cd->html) == s) h=i; i++; \
-        g_signal_connect (menuitem, "activate", G_CALLBACK (set_style), data); \
-        g_object_set_data (G_OBJECT (menuitem), "style", GINT_TO_POINTER (s));
-
-	ADD_ITEM (_("Normal"),       GTK_HTML_PARAGRAPH_STYLE_NORMAL);
-	ADD_SEP;
-	if (cd->format_html) {
-		ADD_ITEM (_("Header 1"),     GTK_HTML_PARAGRAPH_STYLE_H1);
-		ADD_ITEM (_("Header 2"),     GTK_HTML_PARAGRAPH_STYLE_H2);
-		ADD_ITEM (_("Header 3"),     GTK_HTML_PARAGRAPH_STYLE_H3);
-		ADD_ITEM (_("Header 4"),     GTK_HTML_PARAGRAPH_STYLE_H4);
-		ADD_ITEM (_("Header 5"),     GTK_HTML_PARAGRAPH_STYLE_H5);
-		ADD_ITEM (_("Header 6"),     GTK_HTML_PARAGRAPH_STYLE_H6);
-		ADD_SEP;
-	}
-	ADD_ITEM (_("Dot item"),     GTK_HTML_PARAGRAPH_STYLE_ITEMDOTTED);
-	ADD_ITEM (_("Number item"),   GTK_HTML_PARAGRAPH_STYLE_ITEMDIGIT);
-	ADD_ITEM (_("Roman item"),   GTK_HTML_PARAGRAPH_STYLE_ITEMROMAN);
-	ADD_ITEM (_("Alphabeta item"),   GTK_HTML_PARAGRAPH_STYLE_ITEMALPHA);
-	ADD_SEP;
-	if (cd->format_html) {
-		ADD_ITEM (_("Address"),      GTK_HTML_PARAGRAPH_STYLE_ADDRESS);
-	}
-	ADD_ITEM (_("Preformatted"),          GTK_HTML_PARAGRAPH_STYLE_PRE);
-
-	data->style_option = gtk_option_menu_new ();
-	gtk_option_menu_set_menu (GTK_OPTION_MENU (data->style_option), menu);
-	gtk_option_menu_set_history (GTK_OPTION_MENU (data->style_option), h);
+	data->style_option = paragraph_style_combo_box_new (cd);
 
 	hbox = gtk_hbox_new (FALSE, 6);
 	gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new_with_mnemonic (_("_Style:")), FALSE, FALSE, 0);
@@ -117,10 +73,10 @@ paragraph_properties (GtkHTMLControlData
 
 	hbox = gtk_hbox_new (FALSE, 12);
 
-#define ADD_RADIO(x,a,icon_name) \
+#define ADD_RADIO(x,a,stock_id) \
 	radio = gtk_radio_button_new_with_label (group, x); \
 	group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio)); \
-        icon = gtk_image_new_from_file (gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_text_" icon_name, 16, NULL, NULL)); \
+	icon = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); \
 	gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0); \
 	gtk_box_pack_start (GTK_BOX (hbox), radio, FALSE, FALSE, 0); \
         if (a == gtk_html_get_paragraph_alignment (data->cd->html)) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio), TRUE); \
@@ -128,9 +84,9 @@ paragraph_properties (GtkHTMLControlData
         g_object_set_data (G_OBJECT (radio), "align", GINT_TO_POINTER (a));
 
 	group = NULL;
-	ADD_RADIO (_("Left"), GTK_HTML_PARAGRAPH_ALIGNMENT_LEFT, "left");
-	ADD_RADIO (_("Center"), GTK_HTML_PARAGRAPH_ALIGNMENT_CENTER, "center");
-	ADD_RADIO (_("Right"), GTK_HTML_PARAGRAPH_ALIGNMENT_RIGHT, "right");
+	ADD_RADIO (_("Left"), GTK_HTML_PARAGRAPH_ALIGNMENT_LEFT, GTK_STOCK_JUSTIFY_LEFT);
+	ADD_RADIO (_("Center"), GTK_HTML_PARAGRAPH_ALIGNMENT_CENTER, GTK_STOCK_JUSTIFY_CENTER);
+	ADD_RADIO (_("Right"), GTK_HTML_PARAGRAPH_ALIGNMENT_RIGHT, GTK_STOCK_JUSTIFY_RIGHT);
 
 	gtk_table_attach (GTK_TABLE (table), editor_hig_vbox (_("Alignment"), hbox), 0, 1, 1, 2, GTK_FILL | GTK_EXPAND, GTK_FILL, 0, 0);
 
Index: components/html-editor/rule.c
===================================================================
--- components/html-editor/rule.c	(revision 8346)
+++ components/html-editor/rule.c	(working copy)
@@ -62,17 +62,21 @@ typedef struct _GtkHTMLEditRulePropertie
 static void
 set_length (GtkHTMLEditRuleProperties *d)
 {
-	GtkWidget *menu;
+	gint index;
+	gint value;
 
 	if (d->disable_change || !editor_has_html_object (d->cd, HTML_OBJECT (d->rule)))
 		return;
 
-	menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_length_percent));
-
-	if (g_list_index (GTK_MENU_SHELL (menu)->children, gtk_menu_get_active (GTK_MENU (menu))))
-		html_rule_set_length (d->rule, d->cd->html->engine, 0, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_length)));
-	else
-		html_rule_set_length (d->rule, d->cd->html->engine, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_length)), 0);
+	index = gtk_combo_box_get_active (
+		GTK_COMBO_BOX (d->option_length_percent));
+	value = gtk_spin_button_get_value_as_int (
+		GTK_SPIN_BUTTON (d->spin_length));
+
+	html_rule_set_length (
+		d->rule, d->cd->html->engine,
+		(index > 0) ? 0 : value,
+		(index > 0) ? value : 0);
 }
 
 static void
@@ -97,22 +101,15 @@ changed_length_percent (GtkWidget *w, Gt
 }
 
 static void
-changed_align (GtkWidget *w, GtkHTMLEditRuleProperties *d)
+changed_align (GtkComboBox *combo_box, GtkHTMLEditRuleProperties *d)
 {
+	HTMLHAlignType align = HTML_HALIGN_LEFT;
+
 	if (d->disable_change || !editor_has_html_object (d->cd, HTML_OBJECT (d->rule)))
 		return;
 
-	switch (g_list_index (GTK_MENU_SHELL (w)->children, gtk_menu_get_active (GTK_MENU (w)))) {
-	case 0:
-		html_rule_set_align (d->rule, d->cd->html->engine, HTML_HALIGN_LEFT);
-		break;
-	case 1:
-		html_rule_set_align (d->rule, d->cd->html->engine, HTML_HALIGN_CENTER);
-		break;
-	case 2:
-		html_rule_set_align (d->rule, d->cd->html->engine, HTML_HALIGN_RIGHT);
-		break;
-	}
+	align += gtk_combo_box_get_active (combo_box);
+	html_rule_set_align (d->rule, d->cd->html->engine, align);
 }
 
 static void
@@ -148,19 +145,19 @@ set_ui (GtkHTMLEditRuleProperties *d)
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width),  d->rule->size);
 		if (HTML_OBJECT (d->rule)->percent > 0) {
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_length), HTML_OBJECT (d->rule)->percent);
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_length_percent), 1);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_length_percent), 1);
 		} else {
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_length), d->rule->length);
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_length_percent), 0);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_length_percent), 0);
 		}
 
 		if (d->rule->halign == HTML_HALIGN_RIGHT)
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_align), 2);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_align), 2);
 		else if (d->rule->halign == HTML_HALIGN_LEFT)
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_align), 0);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_align), 0);
 		else
 			/* center is default rule's halign */
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_align), 1);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_align), 1);
 
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_shaded), d->rule->shade);
 	}
@@ -190,12 +187,10 @@ rule_widget (GtkHTMLEditRuleProperties *
 	g_signal_connect (d->spin_width, "value_changed", G_CALLBACK (changed_width), d);
 	UPPER_FIX (width);
 	d->option_length_percent = glade_xml_get_widget (xml, "option_rule_percent");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_length_percent)),
-			  "selection-done", G_CALLBACK (changed_length_percent), d);
+	g_signal_connect (d->option_length_percent, "changed", G_CALLBACK (changed_length_percent), d);
 
 	d->option_align = glade_xml_get_widget (xml, "option_rule_align");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_align)),
-			  "selection-done", G_CALLBACK (changed_align), d);
+	g_signal_connect (d->option_align, "changed", G_CALLBACK (changed_align), d);
 
 	d->check_shaded = glade_xml_get_widget (xml, "check_rule_shaded");
 	g_signal_connect (d->check_shaded, "toggled", G_CALLBACK (shaded_toggled), d);
Index: components/html-editor/rule.h
===================================================================
--- components/html-editor/rule.h	(revision 8346)
+++ components/html-editor/rule.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_RULE_H_
 #define _GTK_HTML_RULE_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 GtkWidget             * rule_properties      (GtkHTMLControlData *cd, gpointer *set_data);
Index: components/html-editor/image.c
===================================================================
--- components/html-editor/image.c	(revision 8346)
+++ components/html-editor/image.c	(working copy)
@@ -29,6 +29,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <glade/glade.h>
+#include <libgnome/libgnome.h>
 
 #include "gtkhtml.h"
 #include "htmlcolorset.h"
@@ -180,7 +181,6 @@ changed_align (GtkWidget *w, GtkHTMLEdit
 static void
 changed_size (GtkWidget *widget, GtkHTMLEditImageProperties *d)
 {
-	GtkWidget *menu_width_p, *menu_height_p;
 	gint width, height, width_percent, height_percent;
 
 	if (d->disable_change || !editor_has_html_object (d->cd, HTML_OBJECT (d->image)))
@@ -188,12 +188,8 @@ changed_size (GtkWidget *widget, GtkHTML
 
 	width = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_width));
 	height = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_height));
-	menu_width_p = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width_percent));
-	menu_height_p = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_height_percent));
-	width_percent = g_list_index (GTK_MENU_SHELL (menu_width_p)->children,
-				      gtk_menu_get_active (GTK_MENU (menu_width_p)));
-	height_percent = g_list_index (GTK_MENU_SHELL (menu_height_p)->children,
-				       gtk_menu_get_active (GTK_MENU (menu_height_p)));
+	width_percent = gtk_combo_box_get_active (GTK_COMBO_BOX (d->option_width_percent));
+	height_percent = gtk_combo_box_get_active (GTK_COMBO_BOX (d->option_height_percent));
 	gtk_widget_set_sensitive (d->spin_width, width_percent != 2);
 	gtk_widget_set_sensitive (d->spin_height, height_percent != 2);
 
@@ -239,30 +235,30 @@ image_set_ui (GtkHTMLEditImageProperties
 		d->disable_change = TRUE;
 
 		if (image->percent_width) {
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width_percent), 1);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width_percent), 1);
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width), image->specified_width);
 		} else if (image->specified_width > 0) {
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width_percent), 0);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width_percent), 0);
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width), image->specified_width);
 		} else {
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width_percent), 2);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width_percent), 2);
 			gtk_widget_set_sensitive (d->spin_width, FALSE);
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width), html_image_get_actual_width (image, NULL));
 		}
 
 		if (image->percent_height) {
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_height_percent), 1);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_height_percent), 1);
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_height), image->specified_height);
 		} else if (image->specified_height > 0) {
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_height_percent), 0);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_height_percent), 0);
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_height), image->specified_height);
 		} else {
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_height_percent), 2);
+			gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_height_percent), 2);
 			gtk_widget_set_sensitive (d->spin_height, FALSE);
 			gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_height), html_image_get_actual_height (image, NULL));
 		}
 
-		gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_align), image->valign);
+		gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_align), image->valign);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_padh), image->hspace);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_padv), image->vspace);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_border), image->border);
@@ -298,17 +294,12 @@ set_size_all (HTMLObject *o, HTMLEngine 
 	if (location && HTML_IS_IMAGE (o) && HTML_IMAGE (o)->image_ptr && HTML_IMAGE (o)->image_ptr->url) {
 		if (!strcmp (HTML_IMAGE (o)->image_ptr->url, location)) {
 			HTMLImage *i = HTML_IMAGE (o);
-			GtkWidget *menu_width_p, *menu_height_p;
 			gint width, height, width_percent, height_percent;
 
 			width = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_width));
 			height = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_height));
-			menu_width_p = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width_percent));
-			menu_height_p = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_height_percent));
-			width_percent = g_list_index (GTK_MENU_SHELL (menu_width_p)->children,
-						      gtk_menu_get_active (GTK_MENU (menu_width_p)));
-			height_percent = g_list_index (GTK_MENU_SHELL (menu_height_p)->children,
-						       gtk_menu_get_active (GTK_MENU (menu_height_p)));
+			width_percent = gtk_combo_box_get_active (GTK_COMBO_BOX (d->option_width_percent));
+			height_percent = gtk_combo_box_get_active (GTK_COMBO_BOX (d->option_height_percent));
 
 			d->disable_change = TRUE;
 			if ((width == 0 || width_percent == 2) && width_percent != 1) {
@@ -356,14 +347,11 @@ image_widget (GtkHTMLEditImageProperties
 	d->page = glade_xml_get_widget (xml, "image_page");
 
 	d->option_align = glade_xml_get_widget (xml, "option_image_align");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_align)),
-			  "selection-done", G_CALLBACK (changed_align), d);
+	g_signal_connect (d->option_align, "changed", G_CALLBACK (changed_align), d);
 	d->option_width_percent = glade_xml_get_widget (xml, "option_image_width_percent");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width_percent)),
-			  "selection-done", G_CALLBACK (changed_size), d);
+	g_signal_connect (d->option_width_percent, "changed", G_CALLBACK (changed_size), d);
 	d->option_height_percent = glade_xml_get_widget (xml, "option_image_height_percent");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_height_percent)),
-			  "selection-done", G_CALLBACK (changed_size), d);
+	g_signal_connect (d->option_height_percent, "changed", G_CALLBACK (changed_size), d);
 
 	d->spin_border = glade_xml_get_widget (xml, "spin_image_border");
 	UPPER_FIX (border);
Index: components/html-editor/e-html-utils.c
===================================================================
--- components/html-editor/e-html-utils.c	(revision 8346)
+++ components/html-editor/e-html-utils.c	(working copy)
@@ -80,7 +80,7 @@ url_extract (const unsigned char **text,
 			return NULL;
 	}
 
-	out = g_strndup (*text, end - *text);
+	out = g_strndup ((const gchar *) *text, end - *text);
 	*text = end;
 	return out;
 }
@@ -111,7 +111,7 @@ email_address_extract (const unsigned ch
 	if (dot > end)
 		return NULL;
 
-	addr = g_strndup (start, end - start);
+	addr = g_strndup ((const gchar *) start, end - start);
 	*out -= *cur - start;
 	*cur = end;
 
@@ -130,7 +130,7 @@ is_citation (const unsigned char *c, gbo
 	if (*c == '>') {
 		const unsigned char *p;
 
-		if (strncmp (c, ">From ", 6) != 0)
+		if (strncmp ((const gchar *) c, ">From ", 6) != 0)
 			return TRUE;
 
 		/* If the previous line was a citation, then say this
@@ -149,8 +149,8 @@ is_citation (const unsigned char *c, gbo
 	}
 
 	/* Check for "Rupert> " and the like... */
-	for (i = 0; c && *c && g_unichar_validate (g_utf8_get_char (c)) && *c != '\n' && i < 10; i ++, c = g_utf8_next_char (c)) {
-		u = g_utf8_get_char (c);
+	for (i = 0; c && *c && g_unichar_validate (g_utf8_get_char ((const gchar *) c)) && (gchar) *c != '\n' && i < 10; i ++, c = (const guchar *) g_utf8_next_char (c)) {
+		u = g_utf8_get_char ((const gchar *) c);
 		if (u == '>')
 			return TRUE;
 		if (!g_unichar_isalnum (u))
@@ -223,7 +223,7 @@ e_text_to_html_full (const char *input, 
 
 	col = 0;
 
-	for (cur = linestart = input; cur && *cur; cur = next) {
+	for (cur = linestart = (const guchar *) input; cur && *cur; cur = next) {
 		gunichar u;
 
 		if (flags & E_TEXT_TO_HTML_MARK_CITATION && col == 0) {
@@ -254,23 +254,23 @@ e_text_to_html_full (const char *input, 
 			out += sprintf (out, "&gt; ");
 		}
 
-		u = g_utf8_get_char (cur);
+		u = g_utf8_get_char ((gchar *) cur);
 		if (g_unichar_isalpha (u) &&
 		    (flags & E_TEXT_TO_HTML_CONVERT_URLS)) {
 			char *tmpurl = NULL, *refurl = NULL, *dispurl = NULL;
 
-			if (!g_ascii_strncasecmp (cur, "http://", 7) ||
-			    !g_ascii_strncasecmp (cur, "https://", 8) ||
-			    !g_ascii_strncasecmp (cur, "ftp://", 6) ||
-			    !g_ascii_strncasecmp (cur, "nntp://", 7) ||
-			    !g_ascii_strncasecmp (cur, "mailto:", 7) ||
-			    !g_ascii_strncasecmp (cur, "news:", 5)) {
+			if (!g_ascii_strncasecmp ((gchar *) cur, "http://", 7) ||
+			    !g_ascii_strncasecmp ((gchar *) cur, "https://", 8) ||
+			    !g_ascii_strncasecmp ((gchar *) cur, "ftp://", 6) ||
+			    !g_ascii_strncasecmp ((gchar *) cur, "nntp://", 7) ||
+			    !g_ascii_strncasecmp ((gchar *) cur, "mailto:", 7) ||
+			    !g_ascii_strncasecmp ((gchar *) cur, "news:", 5)) {
 				tmpurl = url_extract (&cur, TRUE);
 				if (tmpurl) {
 					refurl = e_text_to_html (tmpurl, 0);
 					dispurl = g_strdup (refurl);
 				}
-			} else if (!g_ascii_strncasecmp (cur, "www.", 4) &&
+			} else if (!g_ascii_strncasecmp ((gchar *) cur, "www.", 4) &&
 				   (*(cur + 4) < 0x80) &&
 				   g_unichar_isalnum (*(cur + 4))) {
 				tmpurl = url_extract (&cur, FALSE);
@@ -294,7 +294,7 @@ e_text_to_html_full (const char *input, 
 
 			if (!*cur)
 				break;
-			u = g_utf8_get_char (cur);
+			u = g_utf8_get_char ((gchar *) cur);
 		}
 
 		if (u == '@' && (flags & E_TEXT_TO_HTML_CONVERT_ADDRESSES)) {
@@ -312,7 +312,7 @@ e_text_to_html_full (const char *input, 
 				g_free (dispaddr);
 				g_free (outaddr);
 
-				u = g_utf8_get_char (cur);
+				u = g_utf8_get_char ((gchar *) cur);
 			}
 		}
 
@@ -323,7 +323,7 @@ e_text_to_html_full (const char *input, 
 			u = *cur;
 			next = cur + 1;
 		} else
-			next = g_utf8_next_char (cur);
+			next = (guchar *) g_utf8_next_char (cur);
 
 		out = check_size (&buffer, &buffer_size, out, 10);
 
Index: components/html-editor/text.c
===================================================================
--- components/html-editor/text.c	(revision 8346)
+++ components/html-editor/text.c	(working copy)
@@ -85,14 +85,13 @@ set_style (GtkHTMLFontStyle mask, GtkHTM
 }
 
 static void
-size_changed (GtkWidget *w, GtkHTMLEditTextProperties *d)
+size_changed (GtkComboBox *combo_box, GtkHTMLEditTextProperties *d)
 {
-	GtkWidget *menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_size));
+	GtkHTMLFontStyle style = GTK_HTML_FONT_STYLE_SIZE_1;
 
+	style += gtk_combo_box_get_active (combo_box);
 
-	set_style (~GTK_HTML_FONT_STYLE_SIZE_MASK,
-		   g_list_index (GTK_MENU_SHELL (menu)->children, gtk_menu_get_active (GTK_MENU (menu))) + GTK_HTML_FONT_STYLE_SIZE_1,
-		   d);
+	set_style (~GTK_HTML_FONT_STYLE_SIZE_MASK, style, d);
 }
 
 static void
@@ -140,7 +139,9 @@ set_ui (GtkHTMLEditTextProperties *d)
 	else
 		gi_color_combo_set_color (GI_COLOR_COMBO (d->combo_color), NULL);
 
-	gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_size), get_size (html_engine_get_font_style (e)));
+	gtk_combo_box_set_active (
+		GTK_COMBO_BOX (d->option_size),
+		get_size (html_engine_get_font_style (e)));
 
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_bold), (html_engine_get_font_style (e) & GTK_HTML_FONT_STYLE_BOLD) != 0);
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_italic), (html_engine_get_font_style (e) & GTK_HTML_FONT_STYLE_ITALIC) != 0);
@@ -186,8 +187,7 @@ text_properties (GtkHTMLControlData *cd,
 	g_signal_connect (d->check_strikeout, "toggled", G_CALLBACK (strikeout_changed), d);
 
 	d->option_size = glade_xml_get_widget (xml, "option_size");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_size)), "selection-done",
-			  G_CALLBACK (size_changed), d);
+	g_signal_connect (d->option_size, "changed", G_CALLBACK (size_changed), d);
 
 	gtk_widget_show_all (text_page);
 
Index: components/html-editor/image.h
===================================================================
--- components/html-editor/image.h	(revision 8346)
+++ components/html-editor/image.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_EDIT_IMAGE_H_
 #define _GTK_HTML_EDIT_IMAGE_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 GtkWidget          * image_properties              (GtkHTMLControlData *cd, gpointer *set_data);
Index: components/html-editor/GNOME_GtkHTML_Editor.xml.in
===================================================================
--- components/html-editor/GNOME_GtkHTML_Editor.xml.in	(revision 8346)
+++ components/html-editor/GNOME_GtkHTML_Editor.xml.in	(working copy)
@@ -1,41 +1,41 @@
 <Root>
 		<commands>
 
-			<cmd name="EditUndo" _label="_Undo" _tip="Undo the last action" pixtype="pixbuf"/>
-			<cmd name="EditRedo" _label="_Redo" _tip="Redo the undone action" pixtype="pixbuf"/>
+			<cmd name="EditUndo" _label="_Undo" _tip="Undo the last action"/>
+			<cmd name="EditRedo" _label="_Redo" _tip="Redo the undone action"/>
 
-			<cmd name="EditCut" _label="Cu_t" _tip="Cut the selection" pixtype="pixbuf"/>
-			<cmd name="EditCopy" _label="_Copy" _tip="Copy the selection" pixtype="pixbuf"/>
-			<cmd name="EditPaste" _label="_Paste" _tip="Paste the clipboard" pixtype="pixbuf"/>
+			<cmd name="EditCut" _label="Cu_t" _tip="Cut the selection"/>
+			<cmd name="EditCopy" _label="_Copy" _tip="Copy the selection"/>
+			<cmd name="EditPaste" _label="_Paste" _tip="Paste the clipboard"/>
 			<cmd name="EditPasteQuotation" _label="Paste _Quotation" _tip="Paste the clipboard as a quotation"/>
 
-			<cmd name="EditFind" _label="_Find..." _tip="Find" pixtype="pixbuf"/>
+			<cmd name="EditFind" _label="_Find..." _tip="Find"/>
 			<cmd name="EditFindAgain" _label="Find _Again" _tip="Find again"/>
 			<cmd name="EditReplace" _label="_Replace..." _tip="Find and Replace"/>
 
 			<cmd name="EditSelectAll" _label="Select _All"
 			_tip="Select the entire contents of the document"/>
 			<cmd name="EditSpellCheck" _label="Check _Spelling..."
-			_tip="Check spelling of the document" accel="F7" pixtype="pixbuf"/>
+			_tip="Check spelling of the document" accel="F7"/>
 
-			<cmd name="InsertImage" _label="_Image..." _tip="Insert image into document..." pixtype="pixbuf"/>
-			<cmd name="InsertLink"  _label="_Link..." _tip="Insert HTML link into document..." pixtype="pixbuf"/>
+			<cmd name="InsertImage" _label="_Image..." _tip="Insert image into document..."/>
+			<cmd name="InsertLink"  _label="_Link..." _tip="Insert HTML link into document..."/>
 			<cmd name="InsertRule"  _label="_Rule..." _tip="Insert rule into document..."/>
 			<cmd name="InsertTable" _label="_Table..." _tip="Insert table into document..."/>
 			<cmd name="InsertTemplate" _label="Te_mplate..." _tip="Insert HTML template into document..."/>
 			<cmd name="InsertTextFile" _label="Te_xt File..." _tip="Insert text file into document..."/>
 			<cmd name="InsertHTMLFile" _label="_HTML File..." _tip="Insert HTML file into document..."/>
-			<cmd name="InsertSmiley3" _label="_Smile" _tip="Insert Smile emoticon into document..."/>
-			<cmd name="InsertSmiley4" _label="_Wink" _tip="Insert Wink emoticon into document..."/>
-			<cmd name="InsertSmiley5" _label="Su_rprised" _tip="Insert Surprised emoticon into document..."/>
-			<cmd name="InsertSmiley1" _label="_Laughing" _tip="Insert Laughing emoticon into document..."/>
-			<cmd name="InsertSmiley2" _label="Oh _No!" _tip="Insert Oh no! emoticon into document..."/>
+			<cmd name="InsertSmiley1" _label="_Smile" _tip="Insert Smile emoticon into document..."/>
+			<cmd name="InsertSmiley2" _label="_Wink" _tip="Insert Wink emoticon into document..."/>
+			<cmd name="InsertSmiley3" _label="Su_rprised" _tip="Insert Surprised emoticon into document..."/>
+			<cmd name="InsertSmiley4" _label="_Laughing" _tip="Insert Laughing emoticon into document..."/>
+			<cmd name="InsertSmiley5" _label="Oh _No!" _tip="Insert Oh no! emoticon into document..."/>
 			<cmd name="InsertSmiley6" _label="_Frown" _tip="Insert Frown emoticon into document..."/>
 			<cmd name="InsertSmiley8" _label="_Indifferent" _tip="Insert Indifferent emoticon into document..."/>
 			<cmd name="InsertSmiley9" _label="_Undecided" _tip="Insert Undecided emoticon into document..."/>
 			<cmd name="InsertSmiley10" _label="Ton_gue" _tip="Insert Tongue emoticon into document..."/>
 			<cmd name="InsertSmiley11" _label="Cr_ying" _tip="Insert Crying emoticon into document..."/>
-			<cmd name="InsertSmiley12" _label="S_ick" _tip="Insert Sick emoticon into document..."/>
+			<cmd name="InsertSmiley26" _label="S_ick" _tip="Insert Sick emoticon into document..."/>
 
 			<cmd name="HeadingNormal" _label="Normal"
 		        _tip="Make the current Paragraph style Normal"
@@ -78,19 +78,16 @@
 		        _tip="Make the current paragraph an alphabetical list"/>
 
 			<cmd name="AlignLeft" _label="_Left"
-			_tip="Left justifies the paragraphs"
-			pixtype="stock" pixname="gtk-justify-left"/>
+			_tip="Left justifies the paragraphs"/>
 			<cmd name="AlignCenter" _label="_Center"
-			_tip="Center justifies the paragraphs"
-			pixtype="stock" pixname="gtk-justify-center"/>
+			_tip="Center justifies the paragraphs"/>
 			<cmd name="AlignRight" _label="_Right"
-			_tip="Right justifies the paragraphs"
-			pixtype="stock" pixname="gtk-justify-right"/>
+			_tip="Right justifies the paragraphs"/>
 
-			<cmd name="FormatBold" _label="_Bold" accel="*Ctrl*b" pixtype="stock" pixname="gtk-bold"/>
-			<cmd name="FormatItalic" _label="_Italic" accel="*Ctrl*i" pixtype="stock" pixname="gtk-italic"/>
-			<cmd name="FormatUnderline" _label="_Underline" accel="*Ctrl*u" pixtype="stock" pixname="gtk-underline"/>
-			<cmd name="FormatStrikeout" _label="Strikeout" pixtype="stock" pixname="gtk-strikethrough"/>
+			<cmd name="FormatBold" _label="_Bold" accel="*Ctrl*b"/>
+			<cmd name="FormatItalic" _label="_Italic" accel="*Ctrl*i"/>
+			<cmd name="FormatUnderline" _label="_Underline" accel="*Ctrl*u"/>
+			<cmd name="FormatStrikeout" _label="Strikeout"/>
 			<cmd name="FormatFixed" _label="Typewriter" accel="*Ctrl*t"/>
 			<cmd name="FormatSubscript" _label="Subscript"/>
 			<cmd name="FormatSuperscript" _label="Superscript"/>
@@ -102,10 +99,8 @@
 			<cmd name="FontSizeTwo"/>
 			<cmd name="FontSizeThree"/>
 
-			<cmd name="IndentMore"
-			pixtype="stock" pixname="gnome-stock-text-indent"/>
-			<cmd name="IndentLess"
-			pixtype="stock" pixname="gnome-stock-text-unindent"/>
+			<cmd name="IndentMore"/>
+			<cmd name="IndentLess"/>
 		</commands>
 	<menu>
 		<submenu name="Edit" _label="_Edit">
@@ -126,8 +121,7 @@
 			<placeholder name="EditFindReplace">
 				     <menuitem name="EditFind" verb="" accel="*Ctrl*F"/>
 				     <menuitem name="EditFindAgain" verb="" accel="*Ctrl*G"/>
-				     <menuitem name="EditReplace" verb="" accel="*Ctrl*H"
-                                      pixtype="stock" pixname="gtk-find-and-replace"/>
+				     <menuitem name="EditReplace" verb="" accel="*Ctrl*H"/>
 			</placeholder>
 
 			<placeholder name="EditMisc">
@@ -142,36 +136,22 @@
 			<placeholder name="Component">
 				<menuitem name="InsertImage" verb=""/>
 				<menuitem name="InsertLink"  verb=""/>
-				<menuitem name="InsertRule"  verb=""
-				pixtype="filename" pixname="@ICONSDIR@/insert-rule-16.png"/>
-				<menuitem name="InsertTable" verb=""
-				pixtype="filename" pixname="@ICONSDIR@/insert-table-16.png"/>
+				<menuitem name="InsertRule"  verb=""/>
+				<menuitem name="InsertTable" verb=""/>
 				<menuitem name="InsertTextFile" verb=""/>
 				<menuitem name="InsertHTMLFile" verb=""/>
-				<submenu name="Smiley" _label="Emoti_con"
-                                pixtype="filename" pixname="@ICONSDIR@/smiley-3.png">
-					<menuitem name="InsertSmiley3" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-3.png"/>
-					<menuitem name="InsertSmiley4" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-4.png"/>
-					<menuitem name="InsertSmiley5" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-5.png"/>
-					<menuitem name="InsertSmiley1" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-1.png"/>
-					<menuitem name="InsertSmiley2" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-2.png"/>
-					<menuitem name="InsertSmiley6" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-6.png"/>
-					<menuitem name="InsertSmiley8" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-8.png"/>
-					<menuitem name="InsertSmiley9" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-9.png"/>
-					<menuitem name="InsertSmiley10" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-10.png"/>
-					<menuitem name="InsertSmiley11" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-11.png"/>
-					<menuitem name="InsertSmiley12" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-12.png"/>
+				<submenu name="Smiley" _label="Emoti_con">
+					<menuitem name="InsertSmiley1" verb=""/>
+					<menuitem name="InsertSmiley2" verb=""/>
+					<menuitem name="InsertSmiley3" verb=""/>
+					<menuitem name="InsertSmiley4" verb=""/>
+					<menuitem name="InsertSmiley5" verb=""/>
+					<menuitem name="InsertSmiley6" verb=""/>
+					<menuitem name="InsertSmiley8" verb=""/>
+					<menuitem name="InsertSmiley9" verb=""/>
+					<menuitem name="InsertSmiley10" verb=""/>
+					<menuitem name="InsertSmiley11" verb=""/>
+					<menuitem name="InsertSmiley26" verb=""/>
 				</submenu>
 			</placeholder>
 		</submenu>
@@ -179,10 +159,9 @@
 		<submenu name="Format" _label="For_mat">
 			<separator/>
 
-			<placeholder name="FormatParagaph">
+			<placeholder name="FormatParagraph">
 				<submenu name="FontStyle" _label="_Style">
-					<menuitem name="FormatFixed" verb="" _label="_Plain Text"
-                                         pixtype="filename" pixname="@ICONSDIR@/font-tt-16.png"/>
+					<menuitem name="FormatFixed" verb="" _label="_Plain Text"/>
 
 					<separator/>
 				
@@ -280,17 +259,14 @@
 		<separator/>
 
 		<toolitem name="EditFind" verb=""  _label="Find" _tip="Find"/>
-		<toolitem name="EditReplace" verb=""  _label="Replace" _tip="Find and replace"
-                 pixtype="stock" pixname="gtk-find-and-replace"/>
+		<toolitem name="EditReplace" verb=""  _label="Replace" _tip="Find and replace"/>
 
 		<separator/>
 
 		<toolitem name="InsertImage" verb="" _label="Image" _tip="Insert image"/>
 		<toolitem name="InsertLink" verb="" _label="Link" _tip="Insert link"/>
-		<toolitem name="InsertRule" verb="" _label="Rule" _tip="Insert rule"
-		pixtype="filename" pixname="@ICONSDIR@/insert-rule-24.png"/>
-		<toolitem name="InsertTable" verb="" _label="Table" _tip="Insert table"
-		pixtype="filename" pixname="@ICONSDIR@/insert-table-24.png"/>
+		<toolitem name="InsertRule" verb="" _label="Rule" _tip="Insert rule"/>
+		<toolitem name="InsertTable" verb="" _label="Table" _tip="Insert table"/>
 	</dockitem>
 
 </Root> 
Index: components/html-editor/menubar.c
===================================================================
--- components/html-editor/menubar.c	(revision 8346)
+++ components/html-editor/menubar.c	(working copy)
@@ -33,7 +33,6 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 
-#include <gnome.h>
 #ifdef USE_GTKFILECHOOSER
 #include <gtk/gtkfilechooser.h>
 #include <gtk/gtkfilechooserdialog.h>
@@ -132,14 +131,10 @@ insert_image_cb (BonoboUIComponent *uic,
 static void
 insert_link_cb (BonoboUIComponent *uic, GtkHTMLControlData *cd, const char *cname)
 {
-	char *filename;
-
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	filename = g_build_filename (ICONDIR, "insert-link-24.png", NULL);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), filename);
-	g_free (filename);
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), "stock_insert-url");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_LINK, _("Link"),
@@ -153,16 +148,12 @@ insert_link_cb (BonoboUIComponent *uic, 
 static void
 insert_rule_cb (BonoboUIComponent *uic, GtkHTMLControlData *cd, const char *cname)
 {
-	char *filename;
-
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
 	html_engine_insert_rule (cd->html->engine, 0, 100, 2, FALSE, HTML_HALIGN_LEFT);
 
-	filename = g_build_filename (ICONDIR, "insert-rule-24.png", NULL);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), filename);
-	g_free (filename);
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), "stock_insert-rule");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_RULE, _("Rule"),
@@ -175,8 +166,6 @@ insert_rule_cb (BonoboUIComponent *uic, 
 void
 insert_table (GtkHTMLControlData *cd)
 {
-	char *filename;
-
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
@@ -188,9 +177,7 @@ insert_table (GtkHTMLControlData *cd)
 		html_engine_table_set_cols (cd->html->engine, 3);
 		html_engine_table_set_rows (cd->html->engine, 3);
 	}
-	filename = g_build_filename (ICONDIR, "insert-table-24.png", NULL);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), filename);
-	g_free (filename);
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), "stock_insert-table");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_TABLE, _("Table"),
@@ -209,14 +196,10 @@ insert_table_cb (BonoboUIComponent *uic,
 static void
 insert_template_cb (BonoboUIComponent *uic, GtkHTMLControlData *cd, const char *cname)
 {
-	char *filename;
-
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	filename = g_build_filename (ICONDIR, "insert-object-24.png", NULL);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), filename);
-	g_free (filename);
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), "stock_insert_graphic");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_TABLE, _("Template"),
@@ -375,8 +358,7 @@ format_page_cb (BonoboUIComponent *uic, 
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Format"),
-								     gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_properties", 16, NULL, NULL));
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Format"), "gtk-properties");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_BODY, _("Page"),
@@ -393,8 +375,7 @@ format_text_cb (BonoboUIComponent *uic, 
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Format"),
-								     gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_properties", 16, NULL, NULL));
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Format"), "gtk-properties");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_BODY, _("Text"),
@@ -411,8 +392,7 @@ format_paragraph_cb (BonoboUIComponent *
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Format"),
-								     gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_properties", 16, NULL, NULL));
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Format"), "gtk-properties");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_BODY, _("Paragraph"),
@@ -455,7 +435,7 @@ static BonoboUIVerb editor_verbs [] = {
 	BONOBO_UI_UNSAFE_VERB ("InsertSmiley9", smiley_cb),
 	BONOBO_UI_UNSAFE_VERB ("InsertSmiley10", smiley_cb),
 	BONOBO_UI_UNSAFE_VERB ("InsertSmiley11", smiley_cb),
-	BONOBO_UI_UNSAFE_VERB ("InsertSmiley12", smiley_cb),
+	BONOBO_UI_UNSAFE_VERB ("InsertSmiley26", smiley_cb),
 
 	BONOBO_UI_UNSAFE_VERB ("IndentMore", command_cb),
 	BONOBO_UI_UNSAFE_VERB ("IndentLess", command_cb),
@@ -690,45 +670,71 @@ menubar_set_languages (GtkHTMLControlDat
 	cd->block_language_changes = FALSE;
 }
 
-#define SMILEYS 12
-static gchar *smiley [SMILEYS] = {
-	":D",
-	":O",
-	":)",
-	";)",
-	"=)",
-	":(",
-	":-)",
-	":-|",
-	":-/",
-	":-P",
-	":~(",
-	":-Q"
-};
-
 static void
 smiley_cb (BonoboUIComponent *uic, GtkHTMLControlData *cd, const char *cname)
 {
-	gint i;
-	char *filename;
-	char *filename_uri;
-
-	g_return_if_fail (cname);
-
-	i = atoi (cname + 12) - 1;
-
-	if (i >=0 && i < SMILEYS) {
-		gchar *s;
-		s = g_strdup_printf ("smiley-%d.png", i + 1);
-		filename = g_build_filename (ICONDIR, s, NULL);
-		g_free (s);
-		filename_uri = gtk_html_filename_to_uri (filename);
-		g_free (filename);
-		s = g_strdup_printf ("<IMG ALT=\"%s\" SRC=\"%s\">", smiley [i], filename_uri);
-		g_free (filename_uri);
-		gtk_html_insert_html (cd->html, s);
-		g_free (s);
-	}
+	const gchar *emoticon;
+	const gchar *filename;
+	GtkIconInfo *icon_info;
+	gchar *icon_name;
+	gchar *html;
+	gint smiley;
+
+	g_return_if_fail (cname != NULL);
+
+	/* cname is "InsertSmileyNN" */
+	smiley = atoi (cname + 12);
+	icon_name = g_strdup_printf ("stock_smiley-%d", smiley);
+	icon_info = gtk_icon_theme_lookup_icon (
+		gtk_icon_theme_get_default (), icon_name, 16, 0);
+	g_assert (icon_info != NULL);
+	filename = gtk_icon_info_get_filename (icon_info);
+	g_assert (filename != NULL);
+	gtk_icon_info_free (icon_info);
+	g_free (icon_name);
+
+	switch (smiley) {
+		case 1: /* smile */
+			emoticon = ":)";
+			break;
+		case 2: /* wink */
+			emoticon = ";)";
+			break;
+		case 3: /* surprised */
+			emoticon = "=)";
+			break;
+		case 4: /* laughing */
+			emoticon = ":D";
+			break;
+		case 5: /* oh no! */
+			emoticon = ":O";
+			break;
+		case 6: /* frown */
+			emoticon = ":(";
+			break;
+		case 8: /* indifferent */
+			emoticon = ":-|";
+			break;
+		case 9: /* undecided */
+			emoticon = ":-/";
+			break;
+		case 10: /* tongue */
+			emoticon = ":-P";
+			break;
+		case 11: /* crying */
+			emoticon = ":~(";
+			break;
+		case 26: /* sick */
+			emoticon = ":-Q";
+			break;
+		default:
+			g_assert_not_reached ();
+	}
+
+	html = g_strdup_printf ("<IMG ALT=\"%s\" SRC=\"%s\">",
+		emoticon, filename);
+	gtk_html_insert_html (cd->html, html);
+	g_free (html);
 }
 
 static void
@@ -740,6 +746,7 @@ menubar_paragraph_style_changed_cb (GtkH
 
 typedef enum
 {
+	EDITOR_ICON_STOCK = 0,
 	EDITOR_ICON_MENU = 16,
 	EDITOR_ICON_TOOLBAR = 24,
 } EditorIconSize;
@@ -753,33 +760,56 @@ typedef struct
 
 static EditorUIPixmap pixmaps_map [] =
 {
-	{ "/Toolbar/EditUndo", "stock_undo", EDITOR_ICON_TOOLBAR },
-	{ "/Toolbar/EditRedo", "stock_redo", EDITOR_ICON_TOOLBAR },
-	{ "/Toolbar/EditCut", "stock_cut", EDITOR_ICON_TOOLBAR },
-	{ "/Toolbar/EditCopy", "stock_copy", EDITOR_ICON_TOOLBAR },
-	{ "/Toolbar/EditPaste", "stock_paste", EDITOR_ICON_TOOLBAR },
-	{ "/Toolbar/EditFind", "stock_search", EDITOR_ICON_TOOLBAR },
+	{ "/Toolbar/EditUndo", GTK_STOCK_UNDO, EDITOR_ICON_STOCK },
+	{ "/Toolbar/EditRedo", GTK_STOCK_REDO, EDITOR_ICON_STOCK },
+	{ "/Toolbar/EditCut", GTK_STOCK_CUT, EDITOR_ICON_STOCK },
+	{ "/Toolbar/EditCopy", GTK_STOCK_COPY, EDITOR_ICON_STOCK },
+	{ "/Toolbar/EditPaste", GTK_STOCK_PASTE, EDITOR_ICON_STOCK },
+	{ "/Toolbar/EditFind", GTK_STOCK_FIND, EDITOR_ICON_STOCK },
+	{ "/Toolbar/EditReplace", GTK_STOCK_FIND_AND_REPLACE, EDITOR_ICON_STOCK },
 	{ "/Toolbar/InsertImage", "stock_insert_image", EDITOR_ICON_TOOLBAR },
 	{ "/Toolbar/InsertLink", "stock_insert-url", EDITOR_ICON_TOOLBAR },
-/* 	{ "/Toolbar/InsertRule", "stock_insert-rule", EDITOR_ICON_TOOLBAR }, */
-/* 	{ "/Toolbar/InsertTable", "stock_insert-table", EDITOR_ICON_TOOLBAR }, */
+ 	{ "/Toolbar/InsertRule", "stock_insert-rule", EDITOR_ICON_TOOLBAR },
+ 	{ "/Toolbar/InsertTable", "stock_insert-table", EDITOR_ICON_TOOLBAR },
 
-	{ "/menu/Edit/EditUndoRedo/EditUndo", "stock_undo", EDITOR_ICON_MENU },
-	{ "/menu/Edit/EditUndoRedo/EditRedo", "stock_redo", EDITOR_ICON_MENU },
+	{ "/menu/Edit/EditUndoRedo/EditUndo", GTK_STOCK_UNDO, EDITOR_ICON_STOCK },
+	{ "/menu/Edit/EditUndoRedo/EditRedo", GTK_STOCK_REDO, EDITOR_ICON_STOCK },
 
-	{ "/menu/Edit/EditCutCopyPaste/EditCut", "stock_cut", EDITOR_ICON_MENU },
-	{ "/menu/Edit/EditCutCopyPaste/EditCopy", "stock_copy", EDITOR_ICON_MENU },
-	{ "/menu/Edit/EditCutCopyPaste/EditPaste", "stock_paste", EDITOR_ICON_MENU },
+	{ "/menu/Edit/EditCutCopyPaste/EditCut", GTK_STOCK_CUT, EDITOR_ICON_STOCK },
+	{ "/menu/Edit/EditCutCopyPaste/EditCopy", GTK_STOCK_COPY, EDITOR_ICON_STOCK },
+	{ "/menu/Edit/EditCutCopyPaste/EditPaste", GTK_STOCK_PASTE, EDITOR_ICON_STOCK },
 
-	{ "/menu/Edit/EditFindReplace/EditFind", "stock_search", EDITOR_ICON_MENU },
-	/* { "/menu/Edit/EditFindReplace/EditReplace", "stock_replace", EDITOR_ICON_MENU }, */
+	{ "/menu/Edit/EditFindReplace/EditFind", GTK_STOCK_FIND, EDITOR_ICON_STOCK },
+	{ "/menu/Edit/EditFindReplace/EditReplace", GTK_STOCK_FIND_AND_REPLACE, EDITOR_ICON_STOCK },
 
-	{ "/menu/Edit/EditMisc/EditSpellCheck", "stock_spellcheck", EDITOR_ICON_MENU },
+	{ "/menu/Edit/EditMisc/EditSpellCheck", GTK_STOCK_SPELL_CHECK, EDITOR_ICON_STOCK },
 
 	{ "/menu/Insert/Component/InsertImage", "stock_insert_image", EDITOR_ICON_MENU },
 	{ "/menu/Insert/Component/InsertLink", "stock_insert-url", EDITOR_ICON_MENU },
-/* 	{ "/menu/Insert/Component/InsertRule", "stock_insert-rule", EDITOR_ICON_MENU }, */
-/* 	{ "/menu/Insert/Component/InsertTable", "stock_insert-table", EDITOR_ICON_MENU }, */
+ 	{ "/menu/Insert/Component/InsertRule", "stock_insert-rule", EDITOR_ICON_MENU },
+ 	{ "/menu/Insert/Component/InsertTable", "stock_insert-table", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley", "stock_smiley-1", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley1", "stock_smiley-1", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley2", "stock_smiley-2", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley3", "stock_smiley-3", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley4", "stock_smiley-4", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley5", "stock_smiley-5", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley6", "stock_smiley-6", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley8", "stock_smiley-8", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley9", "stock_smiley-9", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley10", "stock_smiley-10", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley11", "stock_smiley-11", EDITOR_ICON_MENU },
+	{ "/menu/Insert/Smiley/InsertSmiley26", "stock_smiley-26", EDITOR_ICON_MENU },
+	{ "/menu/Format/FormatParagraph/FontStyle/FormatFixed", "stock_text-monospaced", EDITOR_ICON_MENU },
+	{ "/menu/Format/FormatParagraph/FontStyle/FormatBold", GTK_STOCK_BOLD, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/FontStyle/FormatItalic", GTK_STOCK_ITALIC, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/FontStyle/FormatUnderline", GTK_STOCK_UNDERLINE, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/FontStyle/FormatStrikeout", GTK_STOCK_STRIKETHROUGH, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/Alignment/AlignLeft", GTK_STOCK_JUSTIFY_LEFT, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/Alignment/AlignCenter", GTK_STOCK_JUSTIFY_CENTER, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/Alignment/AlignRight", GTK_STOCK_JUSTIFY_RIGHT, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/IndentMore", GTK_STOCK_INDENT, EDITOR_ICON_STOCK },
+	{ "/menu/Format/FormatParagraph/IndentLess", GTK_STOCK_UNINDENT, EDITOR_ICON_STOCK }
 };
 
 void
@@ -810,18 +840,35 @@ menubar_setup (BonoboUIComponent  *uic,
 		bonobo_ui_util_set_ui (uic, GTKHTML_DATADIR, "GNOME_GtkHTML_Editor.xml", "GNOME_GtkHTML_Editor", NULL);
 	}
 
-	for (i = 0; i < sizeof (pixmaps_map) / sizeof (pixmaps_map [0]); i ++)
-	{
-		char *filename;
-
-		filename = gnome_icon_theme_lookup_icon (cd->icon_theme, pixmaps_map [i].stock_name, pixmaps_map [i].size, NULL, NULL);
-
-		if (filename) {
-			bonobo_ui_component_set_prop (uic, pixmaps_map [i].path, "pixtype", "filename", NULL);
-			bonobo_ui_component_set_prop (uic, pixmaps_map [i].path, "pixname", filename, NULL);
-		} else
-			g_warning ("cannot find icon: '%s' in gnome icon theme", pixmaps_map [i].stock_name);
-		g_free (filename);
+	for (i = 0; i < G_N_ELEMENTS (pixmaps_map); i++) {
+		if (pixmaps_map[i].size == EDITOR_ICON_STOCK) {
+			bonobo_ui_component_set_prop (
+				uic, pixmaps_map[i].path,
+				"pixtype", "stock",
+				NULL);
+			bonobo_ui_component_set_prop (
+				uic, pixmaps_map[i].path,
+				"pixname", pixmaps_map[i].stock_name,
+				NULL);
+		} else {
+			GtkIconInfo *icon_info;
+			const gchar *filename;
+
+			icon_info = gtk_icon_theme_lookup_icon (
+				gtk_icon_theme_get_default (),
+				pixmaps_map[i].stock_name,
+				pixmaps_map[i].size, 0);
+			filename = gtk_icon_info_get_filename (icon_info);
+			bonobo_ui_component_set_prop (
+				uic, pixmaps_map[i].path,
+				"pixtype", "filename",
+				NULL);
+			bonobo_ui_component_set_prop (
+				uic, pixmaps_map[i].path,
+				"pixname", filename,
+				NULL);
+			gtk_icon_info_free (icon_info);
+		}
 	}
 
 	spell_create_language_menu (cd);
Index: components/html-editor/gi-color-combo.c
===================================================================
--- components/html-editor/gi-color-combo.c	(revision 8346)
+++ components/html-editor/gi-color-combo.c	(working copy)
@@ -150,8 +150,8 @@ color_table_setup (GiColorCombo *cc,
 						  color_group));
 
 	{
-		GtkWidget *picker = color_palette_get_color_picker (cc->palette);
-		g_signal_connect (picker, "clicked",
+		GtkWidget *color_button = color_palette_get_color_picker (cc->palette);
+		g_signal_connect (color_button, "clicked",
 				  G_CALLBACK (cb_cust_color_clicked), cc);
 	}
 
@@ -228,7 +228,7 @@ gi_color_combo_construct (GiColorCombo *
 			NULL);
 
 	gtk_container_add (GTK_CONTAINER (cc->preview_button), GTK_WIDGET (cc->preview_canvas));
-	gtk_widget_set_usize (GTK_WIDGET (cc->preview_canvas), 24, 22);
+	gtk_widget_set_size_request (GTK_WIDGET (cc->preview_canvas), 24, 22);
 	g_signal_connect (cc->preview_button, "clicked",
 			  G_CALLBACK (preview_clicked), cc);
 
Index: components/html-editor/html-stream-mem.c
===================================================================
--- components/html-editor/html-stream-mem.c	(revision 8346)
+++ components/html-editor/html-stream-mem.c	(working copy)
@@ -34,7 +34,7 @@ html_stream_mem_write (PortableServer_Se
 
 	if (bhtml->html_stream) {
 		if (ev->_major == CORBA_NO_EXCEPTION) {
-			gtk_html_stream_write (bhtml->html_stream, buffer->_buffer, buffer->_length);
+			gtk_html_stream_write (bhtml->html_stream, (gchar *) buffer->_buffer, buffer->_length);
 		} else {
 			gtk_html_stream_close (bhtml->html_stream, GTK_HTML_STREAM_OK);
 			bhtml->html_stream = NULL;
Index: components/html-editor/GNOME_GtkHTML_Editor-emacs.xml.in
===================================================================
--- components/html-editor/GNOME_GtkHTML_Editor-emacs.xml.in	(revision 8346)
+++ components/html-editor/GNOME_GtkHTML_Editor-emacs.xml.in	(working copy)
@@ -11,8 +11,7 @@
 
 			<cmd name="EditFind" _label="_Find..." _tip="Find"/>
 			<cmd name="EditFindAgain" _label="Find _Again" _tip="Find again"/>
-			<cmd name="EditReplace" _label="_Replace..." _tip="Find and Replace"
-			pixtype="stock" pixname="gtk-find-and-replace"/>
+			<cmd name="EditReplace" _label="_Replace..." _tip="Find and Replace"/>
 
 			<cmd name="EditSelectAll" _label="Select _All"
 			_tip="Select the entire contents of the document"/>
@@ -26,16 +25,17 @@
 			<cmd name="InsertTemplate" _label="Te_mplate..." _tip="Insert HTML template into document..."/>
 			<cmd name="InsertTextFile" _label="Te_xt File..." _tip="Insert text file into document..."/>
 			<cmd name="InsertHTMLFile" _label="_HTML File..." _tip="Insert HTML file into document..."/>
-			<cmd name="InsertSmiley3" _label="_Smile" _tip="Insert Smile emoticon into document..."/>
-			<cmd name="InsertSmiley4" _label="_Wink" _tip="Insert Wink emoticon into document..."/>
-			<cmd name="InsertSmiley5" _label="Su_rprised" _tip="Insert Surprised emoticon into document..."/>
-			<cmd name="InsertSmiley1" _label="_Laughing" _tip="Insert Laughing emoticon into document..."/>
-			<cmd name="InsertSmiley2" _label="Oh _No!" _tip="Insert Oh no! emoticon into document..."/>
+			<cmd name="InsertSmiley1" _label="_Smile" _tip="Insert Smile emoticon into document..."/>
+			<cmd name="InsertSmiley2" _label="_Wink" _tip="Insert Wink emoticon into document..."/>
+			<cmd name="InsertSmiley3" _label="Su_rprised" _tip="Insert Surprised emoticon into document..."/>
+			<cmd name="InsertSmiley4" _label="_Laughing" _tip="Insert Laughing emoticon into document..."/>
+			<cmd name="InsertSmiley5" _label="Oh _No!" _tip="Insert Oh no! emoticon into document..."/>
 			<cmd name="InsertSmiley6" _label="_Frown" _tip="Insert Frown emoticon into document..."/>
 			<cmd name="InsertSmiley8" _label="_Indifferent" _tip="Insert Indifferent emoticon into document..."/>
 			<cmd name="InsertSmiley9" _label="_Undecided" _tip="Insert Undecided emoticon into document..."/>
 			<cmd name="InsertSmiley10" _label="Ton_gue" _tip="Insert Tongue emoticon into document..."/>
 			<cmd name="InsertSmiley11" _label="Cr_ying" _tip="Insert Crying emoticon into document..."/>
+			<cmd name="InsertSmiley26" _label="S_ick" _tip="Insert Sick emoticon into document..."/>
 
 			<cmd name="HeadingNormal" _label="Normal"
 		        _tip="Make the current Paragraph style Normal"
@@ -78,25 +78,17 @@
 		        _tip="Make the current paragraph an alphabetical list"/>
 
 			<cmd name="AlignLeft" _label="_Left"
-			_tip="Left justifies the paragraphs"
-			pixtype="stock" pixname="gtk-justify-left"/>
+			_tip="Left justifies the paragraphs"/>
 			<cmd name="AlignCenter" _label="_Center"
-			_tip="Center justifies the paragraphs"
-			pixtype="stock" pixname="gtk-justify-center"/>
+			_tip="Center justifies the paragraphs"/>
 			<cmd name="AlignRight" _label="_Right"
-			_tip="Right justifies the paragraphs"
-			pixtype="stock" pixname="gtk-justify-right"/>
+			_tip="Right justifies the paragraphs"/>
 
-			<cmd name="FormatBold" _label="_Bold" accel=""
-			pixtype="stock" pixname="gtk-bold"/>
-			<cmd name="FormatItalic" _label="_Italic" accel="*Ctrl*i"
-			pixtype="stock" pixname="gtk-italic"/>
-			<cmd name="FormatUnderline" _label="_Underline" accel="*Ctrl*u"
-			pixtype="stock" pixname="gtk-underline"/>
-			<cmd name="FormatStrikeout" _label="Strikeout"
-			pixtype="stock" pixname="gtk-strikethrough"/>
-			<cmd name="FormatFixed" _label="Typewriter" accel="*Ctrl*t"
-			pixtype="filename" pixname="@ICONSDIR@/font-tt-16.png"/>
+			<cmd name="FormatBold" _label="_Bold" accel=""/>
+			<cmd name="FormatItalic" _label="_Italic" accel="*Ctrl*i"/>
+			<cmd name="FormatUnderline" _label="_Underline" accel="*Ctrl*u"/>
+			<cmd name="FormatStrikeout" _label="Strikeout"/>
+			<cmd name="FormatFixed" _label="Typewriter" accel="*Ctrl*t"/>
 			<cmd name="FormatSubscript" _label="Subscript"/>
 			<cmd name="FormatSuperscript" _label="Superscript"/>
 
@@ -107,10 +99,8 @@
 			<cmd name="FontSizeTwo"/>
 			<cmd name="FontSizeThree"/>
 
-			<cmd name="IndentMore"
-			pixtype="stock" pixname="gnome-stock-text-indent"/>
-			<cmd name="IndentLess"
-			pixtype="stock" pixname="gnome-stock-text-unindent"/>
+			<cmd name="IndentMore"/>
+			<cmd name="IndentLess"/>
 		</commands>
 	<menu>
 		<submenu name="Edit" _label="_Edit">
@@ -131,8 +121,7 @@
 			<placeholder name="EditFindReplace">
 				     <menuitem name="EditFind" verb="" accel=""/>
 				     <menuitem name="EditFindAgain" verb="" accel="*Ctrl*G"/>
-				     <menuitem name="EditReplace" verb="" accel="*Ctrl*H"
-                                      pixtype="stock" pixname="gtk-find-and-replace"/>
+				     <menuitem name="EditReplace" verb="" accel="*Ctrl*H"/>
 			</placeholder>
 
 			<placeholder name="EditMisc">
@@ -147,34 +136,22 @@
 			<placeholder name="Component">
 				<menuitem name="InsertImage" verb=""/>
 				<menuitem name="InsertLink"  verb=""/>
-				<menuitem name="InsertRule"  verb=""
-				pixtype="filename" pixname="@ICONSDIR@/insert-rule-16.png"/>
-				<menuitem name="InsertTable" verb=""
-				pixtype="filename" pixname="@ICONSDIR@/insert-table-16.png"/>
+				<menuitem name="InsertRule"  verb=""/>
+				<menuitem name="InsertTable" verb=""/>
 				<menuitem name="InsertTextFile" verb=""/>
 				<menuitem name="InsertHTMLFile" verb=""/>
-				<submenu name="Smiley" _label="Emoti_con"
-                                pixtype="filename" pixname="@ICONSDIR@/smiley-3.png">
-					<menuitem name="InsertSmiley3" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-3.png"/>
-					<menuitem name="InsertSmiley4" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-4.png"/>
-					<menuitem name="InsertSmiley5" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-5.png"/>
-					<menuitem name="InsertSmiley1" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-1.png"/>
-					<menuitem name="InsertSmiley2" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-2.png"/>
-					<menuitem name="InsertSmiley6" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-6.png"/>
-					<menuitem name="InsertSmiley8" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-8.png"/>
-					<menuitem name="InsertSmiley9" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-9.png"/>
-					<menuitem name="InsertSmiley10" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-10.png"/>
-					<menuitem name="InsertSmiley11" verb=""
-        	                        pixtype="filename" pixname="@ICONSDIR@/smiley-11.png"/>
+				<submenu name="Smiley" _label="Emoti_con">
+					<menuitem name="InsertSmiley1" verb=""/>
+					<menuitem name="InsertSmiley2" verb=""/>
+					<menuitem name="InsertSmiley3" verb=""/>
+					<menuitem name="InsertSmiley4" verb=""/>
+					<menuitem name="InsertSmiley5" verb=""/>
+					<menuitem name="InsertSmiley6" verb=""/>
+					<menuitem name="InsertSmiley8" verb=""/>
+					<menuitem name="InsertSmiley9" verb=""/>
+					<menuitem name="InsertSmiley10" verb=""/>
+					<menuitem name="InsertSmiley11" verb=""/>
+					<menuitem name="InsertSmiley26" verb=""/>
 				</submenu>
 			</placeholder>
 		</submenu>
@@ -182,7 +159,7 @@
 		<submenu name="Format" _label="For_mat">
 			<separator/>
 
-			<placeholder name="FormatParagaph">
+			<placeholder name="FormatParagraph">
 				<submenu name="FontStyle" _label="_Style">
 					<menuitem name="FormatFixed" verb="" _label="_Plain Text"/>
 
@@ -284,10 +261,8 @@
 
 		<toolitem name="InsertImage" verb="" _label="Image" _tip="Insert image"/>
 		<toolitem name="InsertLink" verb="" _label="Link" _tip="Insert link"/>
-		<toolitem name="InsertRule" verb="" _label="Rule" _tip="Insert rule"
-		pixtype="filename" pixname="@ICONSDIR@/insert-rule-24.png"/>
-		<toolitem name="InsertTable" verb="" _label="Table" _tip="Insert table"
-		pixtype="filename" pixname="@ICONSDIR@/insert-table-24.png"/>
+		<toolitem name="InsertRule" verb="" _label="Rule" _tip="Insert rule"/>
+		<toolitem name="InsertTable" verb="" _label="Table" _tip="Insert table"/>
 	</dockitem>
 
 </Root> 
Index: components/html-editor/htmlsourceview.c
===================================================================
--- components/html-editor/htmlsourceview.c	(revision 8346)
+++ components/html-editor/htmlsourceview.c	(working copy)
@@ -120,10 +120,10 @@ void
 html_source_view_set_timeout (HTMLSourceView *view, guint timeout)
 {
 	if (view->priv->timer_id)
-		gtk_timeout_remove (view->priv->timer_id);
+		g_source_remove (view->priv->timer_id);
 	
 	view->priv->current_interval = timeout;
-	view->priv->timer_id = gtk_timeout_add (timeout, (GtkFunction)html_source_view_timeout, view);
+	view->priv->timer_id = g_timeout_add (timeout, (GtkFunction)html_source_view_timeout, view);
 }
 
 void
@@ -199,7 +199,7 @@ html_source_view_destroy (GtkObject *obj
 
 	if (priv) {
 		if (priv->timer_id)
-			gtk_timeout_remove (priv->timer_id);
+			g_source_remove (priv->timer_id);
 		priv->timer_id = 0;
 		
 		if (priv->pstream != CORBA_OBJECT_NIL) {
Index: components/html-editor/gtkhtml-editor-properties.glade
===================================================================
--- components/html-editor/gtkhtml-editor-properties.glade	(revision 8346)
+++ components/html-editor/gtkhtml-editor-properties.glade	(working copy)
@@ -142,6 +142,23 @@
 			      <property name="pack_type">GTK_PACK_END</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkImage" id="image_table_select_row">
+			      <property name="visible">True</property>
+			      <property name="icon_size">4</property>
+			      <property name="icon_name">stock_select-row</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -197,6 +214,23 @@
 			      <property name="pack_type">GTK_PACK_END</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkImage" id="image_table_select_column">
+			      <property name="visible">True</property>
+			      <property name="icon_size">4</property>
+			      <property name="icon_name">stock_select-column</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -317,44 +351,6 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkOptionMenu" id="option_table_width">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child internal-child="menu">
-				<widget class="GtkMenu" id="convertwidget1">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget2">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">px</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget3">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">%</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">2</property>
-			      <property name="right_attach">3</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options"></property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
 			    <widget class="GtkLabel" id="label3">
 			      <property name="visible">True</property>
 			      <property name="label" translatable="yes">_Alignment:</property>
@@ -421,40 +417,13 @@
 			      <property name="spacing">0</property>
 
 			      <child>
-				<widget class="GtkOptionMenu" id="option_table_align">
+				<widget class="GtkComboBox" id="option_table_align">
 				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="history">0</property>
-
-				  <child internal-child="menu">
-				    <widget class="GtkMenu" id="convertwidget7">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget8">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Left</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget9">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Center</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget10">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Right</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
+				  <property name="items" translatable="yes">Left
+Center
+Right</property>
+				  <property name="add_tearoffs">False</property>
+				  <property name="focus_on_click">True</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -472,6 +441,24 @@
 			      <property name="y_options">fill</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkComboBox" id="option_table_width">
+			      <property name="visible">True</property>
+			      <property name="items" translatable="yes">px
+%</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -971,6 +958,45 @@
 			      <property name="y_options"></property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkImage" id="image_cell_select_cell">
+			      <property name="visible">True</property>
+			      <property name="icon_size">4</property>
+			      <property name="icon_name">stock_select-cell</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkImage" id="image_cell_select_table">
+			      <property name="visible">True</property>
+			      <property name="icon_size">4</property>
+			      <property name="icon_name">stock_select-table</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1033,6 +1059,45 @@
 			      <property name="y_options"></property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkImage" id="image_cell_select_row">
+			      <property name="visible">True</property>
+			      <property name="icon_size">4</property>
+			      <property name="icon_name">stock_select-row</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkImage" id="image_cell_select_column">
+			      <property name="visible">True</property>
+			      <property name="icon_size">4</property>
+			      <property name="icon_name">stock_select-column</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -1156,40 +1221,13 @@
 			      </child>
 
 			      <child>
-				<widget class="GtkOptionMenu" id="option_cell_halign">
+				<widget class="GtkComboBox" id="option_cell_halign">
 				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="history">0</property>
-
-				  <child internal-child="menu">
-				    <widget class="GtkMenu" id="convertwidget23">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget24">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Left</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget25">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Center</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget26">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Right</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
+				  <property name="items" translatable="yes">Left
+Center
+Right</property>
+				  <property name="add_tearoffs">False</property>
+				  <property name="focus_on_click">True</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1233,40 +1271,13 @@
 			      </child>
 
 			      <child>
-				<widget class="GtkOptionMenu" id="option_cell_valign">
+				<widget class="GtkComboBox" id="option_cell_valign">
 				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="history">0</property>
-
-				  <child internal-child="menu">
-				    <widget class="GtkMenu" id="convertwidget28">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget29">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Top</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget30">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Middle</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-
-				      <child>
-					<widget class="GtkMenuItem" id="convertwidget31">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">Bottom</property>
-					  <property name="use_underline">True</property>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
+				  <property name="items" translatable="yes">Top
+Middle
+Bottom</property>
+				  <property name="add_tearoffs">False</property>
+				  <property name="focus_on_click">True</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -1474,40 +1485,19 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkOptionMenu" id="option_cell_width">
+			    <widget class="GtkComboBox" id="option_cell_width">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child internal-child="menu">
-				<widget class="GtkMenu" id="convertwidget17">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget18">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">px</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget19">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">%</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
+			      <property name="items" translatable="yes">px
+%</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">2</property>
 			      <property name="right_attach">3</property>
 			      <property name="top_attach">0</property>
 			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
+			      <property name="y_options">fill</property>
 			    </packing>
 			  </child>
 			</widget>
@@ -1978,44 +1968,6 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkOptionMenu" id="option_rule_percent">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">0</property>
-
-			  <child internal-child="menu">
-			    <widget class="GtkMenu" id="convertwidget48">
-			      <property name="visible">True</property>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget49">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">px</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget50">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">%</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="left_attach">2</property>
-			  <property name="right_attach">3</property>
-			  <property name="top_attach">0</property>
-			  <property name="bottom_attach">1</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
 			<widget class="GtkLabel" id="label22">
 			  <property name="visible">True</property>
 			  <property name="label" translatable="yes">Width:</property>
@@ -2038,6 +1990,23 @@
 			  <property name="y_options"></property>
 			</packing>
 		      </child>
+
+		      <child>
+			<widget class="GtkComboBox" id="option_rule_percent">
+			  <property name="visible">True</property>
+			  <property name="items" translatable="yes">px
+%</property>
+			  <property name="add_tearoffs">False</property>
+			  <property name="focus_on_click">True</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -2148,40 +2117,13 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkOptionMenu" id="option_rule_align">
+			    <widget class="GtkComboBox" id="option_rule_align">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child internal-child="menu">
-				<widget class="GtkMenu" id="convertwidget51">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget52">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Left</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget53">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Center</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget54">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Right</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
+			      <property name="items" translatable="yes">Left
+Center
+Right</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -2367,61 +2309,7 @@
 			  <property name="column_spacing">12</property>
 
 			  <child>
-			    <widget class="GtkOptionMenu" id="option_template_halign">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child internal-child="menu">
-				<widget class="GtkMenu" id="convertwidget57">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget58">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Left</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget59">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Center</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget60">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Right</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget61">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">None</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">2</property>
-			      <property name="right_attach">3</property>
-			      <property name="top_attach">1</property>
-			      <property name="bottom_attach">2</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="label28">
+			    <widget class="GtkLabel" id="label28">
 			      <property name="visible">True</property>
 			      <property name="label" translatable="yes">Horizontal alignment:</property>
 			      <property name="use_underline">False</property>
@@ -2445,44 +2333,6 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkOptionMenu" id="option_template_percent">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child internal-child="menu">
-				<widget class="GtkMenu" id="convertwidget62">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget63">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Pixels</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget64">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Percent</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">2</property>
-			      <property name="right_attach">3</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
 			    <widget class="GtkSpinButton" id="spin_template_width">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
@@ -2527,6 +2377,43 @@
 			      <property name="y_options"></property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkComboBox" id="option_template_percent">
+			      <property name="visible">True</property>
+			      <property name="items" translatable="yes">px
+%</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkComboBox" id="option_template_halign">
+			      <property name="visible">True</property>
+			      <property name="items" translatable="yes">Left
+Center
+Right
+None</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options">fill</property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -2942,98 +2829,6 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkOptionMenu" id="option_image_width_percent">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">0</property>
-
-			  <child internal-child="menu">
-			    <widget class="GtkMenu" id="convertwidget71">
-			      <property name="visible">True</property>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget72">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">px</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget73">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">%</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget74">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">follow</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="left_attach">2</property>
-			  <property name="right_attach">3</property>
-			  <property name="top_attach">0</property>
-			  <property name="bottom_attach">1</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkOptionMenu" id="option_image_height_percent">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">0</property>
-
-			  <child internal-child="menu">
-			    <widget class="GtkMenu" id="convertwidget75">
-			      <property name="visible">True</property>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget76">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">px</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget77">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">%</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="convertwidget78">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">follow</property>
-				  <property name="use_underline">True</property>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="left_attach">2</property>
-			  <property name="right_attach">3</property>
-			  <property name="top_attach">1</property>
-			  <property name="bottom_attach">2</property>
-			  <property name="x_options">fill</property>
-			  <property name="y_options"></property>
-			</packing>
-		      </child>
-
-		      <child>
 			<widget class="GtkLabel" id="label36">
 			  <property name="visible">True</property>
 			  <property name="label" translatable="yes">_X-Padding:</property>
@@ -3250,40 +3045,13 @@
 			  <property name="spacing">0</property>
 
 			  <child>
-			    <widget class="GtkOptionMenu" id="option_image_align">
+			    <widget class="GtkComboBox" id="option_image_align">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="history">0</property>
-
-			      <child internal-child="menu">
-				<widget class="GtkMenu" id="convertwidget67">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget68">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Top</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget69">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Middle</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkMenuItem" id="convertwidget70">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Bottom</property>
-				      <property name="use_underline">True</property>
-				    </widget>
-				  </child>
-				</widget>
-			      </child>
+			      <property name="items" translatable="yes">Top
+Middle
+Bottom</property>
+			      <property name="add_tearoffs">False</property>
+			      <property name="focus_on_click">True</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -3301,6 +3069,44 @@
 			  <property name="y_options">fill</property>
 			</packing>
 		      </child>
+
+		      <child>
+			<widget class="GtkComboBox" id="option_image_width_percent">
+			  <property name="visible">True</property>
+			  <property name="items" translatable="yes">px
+%
+follow</property>
+			  <property name="add_tearoffs">False</property>
+			  <property name="focus_on_click">True</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkComboBox" id="option_image_height_percent">
+			  <property name="visible">True</property>
+			  <property name="items" translatable="yes">px
+%
+follow</property>
+			  <property name="add_tearoffs">False</property>
+			  <property name="focus_on_click">True</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -3612,6 +3418,85 @@
 		      <property name="y_options"></property>
 		    </packing>
 		  </child>
+
+		  <child>
+		    <widget class="GtkImage" id="image_text_bold">
+		      <property name="visible">True</property>
+		      <property name="stock">gtk-bold</property>
+		      <property name="icon_size">4</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">0</property>
+		      <property name="bottom_attach">1</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImage" id="image_text_italic">
+		      <property name="visible">True</property>
+		      <property name="stock">gtk-italic</property>
+		      <property name="icon_size">4</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">1</property>
+		      <property name="bottom_attach">2</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImage" id="image_text_underline">
+		      <property name="visible">True</property>
+		      <property name="stock">gtk-underline</property>
+		      <property name="icon_size">4</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">2</property>
+		      <property name="bottom_attach">3</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImage" id="image_text_strikethrough">
+		      <property name="visible">True</property>
+		      <property name="stock">gtk-strikethrough</property>
+		      <property name="icon_size">4</property>
+		      <property name="xalign">0.5</property>
+		      <property name="yalign">0.5</property>
+		      <property name="xpad">0</property>
+		      <property name="ypad">0</property>
+		    </widget>
+		    <packing>
+		      <property name="left_attach">0</property>
+		      <property name="right_attach">1</property>
+		      <property name="top_attach">3</property>
+		      <property name="bottom_attach">4</property>
+		      <property name="x_options">fill</property>
+		      <property name="y_options">fill</property>
+		    </packing>
+		  </child>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3705,79 +3590,17 @@
 		      <property name="spacing">0</property>
 
 		      <child>
-			<widget class="GtkOptionMenu" id="option_size">
+			<widget class="GtkComboBox" id="option_size">
 			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="history">0</property>
-
-			  <child internal-child="menu">
-			    <widget class="GtkMenu" id="menu1">
-			      <property name="visible">True</property>
-
-			      <child>
-				<widget class="GtkMenuItem" id="-1">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">-2</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_-1_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="-2">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">-1</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_-2_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="standard1">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Standard</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_standard1_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="+1">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">+1</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_+1_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="+2">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">+2</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_+2_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="+3">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">+3</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_+3_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkMenuItem" id="+4">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">+4</property>
-				  <property name="use_underline">True</property>
-				  <signal name="activate" handler="on_+4_activate" last_modification_time="Tue, 20 Apr 2004 11:19:26 GMT"/>
-				</widget>
-			      </child>
-			    </widget>
-			  </child>
+			  <property name="items" translatable="yes">-2
+-1
+Standard
++1
++2
++3
++4</property>
+			  <property name="add_tearoffs">False</property>
+			  <property name="focus_on_click">True</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
Index: components/html-editor/persist-stream.c
===================================================================
--- components/html-editor/persist-stream.c	(revision 8346)
+++ components/html-editor/persist-stream.c	(working copy)
@@ -146,7 +146,7 @@ impl_load (PortableServer_Servant servan
 			break;
 		}
 
-		gtk_html_write (persist->html, handle, buffer->_buffer, buffer->_length);
+		gtk_html_write (persist->html, handle, (gchar *) buffer->_buffer, buffer->_length);
 		CORBA_free (buffer);
 	} while (1);
 
@@ -179,7 +179,7 @@ save_receiver (const HTMLEngine *engine,
 
 	buffer._maximum = length;
 	buffer._length = length;
-	buffer._buffer = (CORBA_char *) data; /* Should be safe.  */
+	buffer._buffer = (CORBA_octet *) data;
 
 	Bonobo_Stream_write (state->stream, &buffer, state->ev);
 
Index: components/html-editor/table.c
===================================================================
--- components/html-editor/table.c	(revision 8346)
+++ components/html-editor/table.c	(working copy)
@@ -138,33 +138,35 @@ changed_border (GtkWidget *w, GtkHTMLEdi
 }
 
 static void
-changed_align (GtkWidget *w, GtkHTMLEditTableProperties *d)
+changed_align (GtkComboBox *combo_box, GtkHTMLEditTableProperties *d)
 {
+	HTMLHAlignType align = HTML_HALIGN_LEFT;
+
 	if (d->disable_change || !editor_has_html_object (d->cd, HTML_OBJECT (d->table)))
 		return;
 
+	align += gtk_combo_box_get_active (combo_box);
 	html_cursor_forward (d->cd->html->engine->cursor, d->cd->html->engine);
-	html_engine_table_set_align (d->cd->html->engine, d->table,
-					     g_list_index (GTK_MENU_SHELL (w)->children, gtk_menu_get_active (GTK_MENU (w))) + HTML_HALIGN_LEFT);
+	html_engine_table_set_align (d->cd->html->engine, d->table, align);
 }
 
 static void
 set_width (GtkHTMLEditTableProperties *d)
 {
-	GtkWidget *menu;
-
 	if (d->disable_change || !editor_has_html_object (d->cd, HTML_OBJECT (d->table)))
 		return;
 
 	html_cursor_forward (d->cd->html->engine->cursor, d->cd->html->engine);
-	menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width));
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (d->check_width))) {
-		if (g_list_index (GTK_MENU_SHELL (menu)->children, gtk_menu_get_active (GTK_MENU (menu))))
-			html_engine_table_set_width (d->cd->html->engine, d->table, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_width)), TRUE);
-		else
-			html_engine_table_set_width (d->cd->html->engine, d->table, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_width)), FALSE);
-	} else
-			html_engine_table_set_width (d->cd->html->engine, d->table, 0, FALSE);
+	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (d->check_width)))
+		html_engine_table_set_width (
+			d->cd->html->engine, d->table,
+			gtk_spin_button_get_value_as_int (
+				GTK_SPIN_BUTTON (d->spin_width)),
+			gtk_combo_box_get_active (
+				GTK_COMBO_BOX (d->option_width)) > 0);
+	else
+		html_engine_table_set_width (
+			d->cd->html->engine, d->table, 0, FALSE);
 }
 
 static void
@@ -228,17 +230,6 @@ table_widget (GtkHTMLEditTableProperties
 
 	table_page = glade_xml_get_widget (xml, "table_page");
 
-	filename = g_build_filename (ICONDIR, "table-row-16.png", NULL);
-	gtk_box_pack_start (GTK_BOX (glade_xml_get_widget (xml, "table_rows_hbox")),
-			    gtk_image_new_from_file (filename),
-			    FALSE, FALSE, 0);
-	g_free (filename);
-	filename = g_build_filename (ICONDIR, "table-column-16.png", NULL);
-	gtk_box_pack_start (GTK_BOX (glade_xml_get_widget (xml, "table_cols_hbox")),
-			    gtk_image_new_from_file (filename),
-			    FALSE, FALSE, 0);
-	g_free (filename);
-
 	d->combo_bg_color = gi_color_combo_new (NULL, _("Transparent"), NULL,
 					     color_group_fetch ("table_bg_color", d->cd));
         gi_color_combo_box_set_preview_relief (GI_COLOR_COMBO (d->combo_bg_color), GTK_RELIEF_NORMAL); \
@@ -260,8 +251,7 @@ table_widget (GtkHTMLEditTableProperties
 	UPPER_FIX (border);
 
 	d->option_align = glade_xml_get_widget (xml, "option_table_align");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_align)), "selection-done",
-			  G_CALLBACK (changed_align), d);
+	g_signal_connect (d->option_align, "changed", G_CALLBACK (changed_align), d);
 
 	d->spin_width   = glade_xml_get_widget (xml, "spin_table_width");
 	g_signal_connect (d->spin_width, "value_changed", G_CALLBACK (changed_width), d);
@@ -269,8 +259,7 @@ table_widget (GtkHTMLEditTableProperties
 	d->check_width  = glade_xml_get_widget (xml, "check_table_width");
 	g_signal_connect (d->check_width, "toggled", G_CALLBACK (set_has_width), d);
 	d->option_width = glade_xml_get_widget (xml, "option_table_width");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width)), "selection-done",
-			  G_CALLBACK (changed_width_percent), d);
+	g_signal_connect (d->option_width, "changed", G_CALLBACK (changed_width_percent), d);
 
 	d->spin_cols = glade_xml_get_widget (xml, "spin_table_columns");
 	g_signal_connect (d->spin_cols, "value_changed", G_CALLBACK (changed_cols), d);
@@ -314,7 +303,9 @@ set_ui (GtkHTMLEditTableProperties *d)
 		halign = HTML_CLUE (HTML_OBJECT (d->table)->parent)->halign;
 		if (halign == HTML_HALIGN_NONE)
 			halign = HTML_HALIGN_LEFT;
-		gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_align), halign - HTML_HALIGN_LEFT);
+		gtk_combo_box_set_active (
+			GTK_COMBO_BOX (d->option_align),
+			halign - HTML_HALIGN_LEFT);
 
 		if (HTML_OBJECT (d->table)->percent) {
 			width = HTML_OBJECT (d->table)->percent;
@@ -329,10 +320,9 @@ set_ui (GtkHTMLEditTableProperties *d)
 
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_width), has_width);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width),  width);
-		if (percent)
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width), 1);
-		else
-			gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width), 0);
+		gtk_combo_box_set_active (
+			GTK_COMBO_BOX (d->option_width),
+			percent ? 1 : 0);
 
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_cols),  d->table->totalCols);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_rows),  d->table->totalRows);
Index: components/html-editor/table.h
===================================================================
--- components/html-editor/table.h	(revision 8346)
+++ components/html-editor/table.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_TABLE_H_
 #define _GTK_HTML_TABLE_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 GtkWidget             * table_properties      (GtkHTMLControlData *cd, gpointer *set_data);
Index: components/html-editor/popup.c
===================================================================
--- components/html-editor/popup.c	(revision 8346)
+++ components/html-editor/popup.c	(working copy)
@@ -102,14 +102,10 @@ paste_cite (GtkWidget *mi, GtkHTMLContro
 static void
 insert_link (GtkWidget *mi, GtkHTMLControlData *cd)
 {
-	char *filename;
-
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	filename = g_build_filename (ICONDIR, "insert-link-24.png", NULL);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), filename);
-	g_free (filename);
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Insert"), "stock_insert-url");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_LINK, _("Link"),
@@ -192,8 +188,7 @@ show_prop_dialog (GtkHTMLControlData *cd
 
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Properties"),
-								     gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_properties", 16, NULL, NULL));
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Properties"), "gtk-properties");
 
 	cur = cd->properties_types;
 	while (cur) {
@@ -267,14 +262,10 @@ prop_dialog (GtkWidget *mi, GtkHTMLContr
 static void
 link_prop_dialog (GtkWidget *mi, GtkHTMLControlData *cd)
 {
-	char *filename;
-
 	if (cd->properties_dialog)
 		gtk_html_edit_properties_dialog_close (cd->properties_dialog);
 
-	filename = g_build_filename (ICONDIR, "insert-link-24.png", NULL);
-	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Properties"), filename);
-	g_free (filename);
+	cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Properties"), "stock_insert-url");
 
 	gtk_html_edit_properties_dialog_add_entry (cd->properties_dialog,
 						   GTK_HTML_EDIT_PROPERTY_LINK, _("Link"),
@@ -286,12 +277,6 @@ link_prop_dialog (GtkWidget *mi, GtkHTML
 }
 
 static void
-spell_check_cb (GtkWidget *mi, GtkHTMLControlData *cd)
-{
-	spell_check_dialog (cd, FALSE);
-}
-
-static void
 replace_suggestion_cb (GtkWidget *mi, GtkHTMLControlData *cd)
 {
 	html_engine_replace_spell_word_with (cd->html->engine, g_object_get_data (G_OBJECT (mi), "rep_word"));
@@ -597,7 +582,7 @@ prepare_properties_and_menu (GtkHTMLCont
 	END_SUBMENU;
 
 	if (*items == 0) {
-		gtk_object_sink (GTK_OBJECT (menu));
+		g_object_ref_sink (menu);
 		menu = NULL;
 	} else
 		gtk_widget_show (menu);
@@ -654,7 +639,7 @@ property_dialog_show (GtkHTMLControlData
 	guint items, props;
 
 	menu = prepare_properties_and_menu (cd, &items, &props);
-	gtk_object_sink (GTK_OBJECT (menu));
+	g_object_ref_sink (menu);
 	if (props)
 		show_prop_dialog (cd, GTK_HTML_EDIT_PROPERTY_NONE);
 }
Index: components/html-editor/template.c
===================================================================
--- components/html-editor/template.c	(revision 8346)
+++ components/html-editor/template.c	(working copy)
@@ -219,8 +219,8 @@ set_ui (GtkHTMLEditTemplateProperties *d
 	gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (d->tview_template)), &iter);
 
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width), d->width);
-	gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_halign), d->halign - HTML_HALIGN_LEFT);
-	gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width_percent), d->width_percent ? 1 : 0);
+	gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_halign), d->halign - HTML_HALIGN_LEFT);
+	gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width_percent), d->width_percent ? 1 : 0);
 
 	d->disable_change = FALSE;
 
Index: components/html-editor/cell.c
===================================================================
--- components/html-editor/cell.c	(revision 8346)
+++ components/html-editor/cell.c	(working copy)
@@ -186,9 +186,10 @@ changed_bg_pixmap (GtkWidget *w, GtkHTML
 static void
 set_halign (HTMLTableCell *cell, GtkHTMLEditCellProperties *d)
 {
-	GtkWidget *menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_halign));
-	html_engine_table_cell_set_halign (d->cd->html->engine, cell,
-					   g_list_index (GTK_MENU_SHELL (menu)->children, gtk_menu_get_active (GTK_MENU (menu))) + HTML_HALIGN_LEFT);
+	HTMLHAlignType halign = HTML_HALIGN_LEFT;
+
+	halign += gtk_combo_box_get_active (GTK_COMBO_BOX (d->option_halign));
+	html_engine_table_cell_set_halign (d->cd->html->engine, cell, halign);
 }
 
 static void
@@ -200,9 +201,10 @@ changed_halign (GtkWidget *w, GtkHTMLEdi
 static void
 set_valign (HTMLTableCell *cell, GtkHTMLEditCellProperties *d)
 {
-	GtkWidget *menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_valign));
-	html_engine_table_cell_set_valign (d->cd->html->engine, cell,
-					   g_list_index (GTK_MENU_SHELL (menu)->children, gtk_menu_get_active (GTK_MENU (menu))) + HTML_VALIGN_TOP);
+	HTMLVAlignType valign = HTML_VALIGN_TOP;
+
+	valign += gtk_combo_box_get_active (GTK_COMBO_BOX (d->option_valign));
+	html_engine_table_cell_set_valign (d->cd->html->engine, cell, valign);
 }
 
 static void
@@ -239,13 +241,13 @@ static void
 set_width (HTMLTableCell *cell, GtkHTMLEditCellProperties *d)
 {
 	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (d->check_width))) {
-		GtkWidget *menu = gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width));
-		if (g_list_index (GTK_MENU_SHELL (menu)->children, gtk_menu_get_active (GTK_MENU (menu))))
-			html_engine_table_cell_set_width (d->cd->html->engine, cell,
-							  gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_width)), TRUE);
-		else
-			html_engine_table_cell_set_width (d->cd->html->engine, cell,
-							  gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (d->spin_width)), FALSE);
+		gint index = gtk_combo_box_get_active (
+			GTK_COMBO_BOX (d->option_width));
+		html_engine_table_cell_set_width (
+			d->cd->html->engine, cell,
+			gtk_spin_button_get_value_as_int (
+				GTK_SPIN_BUTTON (d->spin_width)),
+			(index > 0));
 	} else
 		html_engine_table_cell_set_width (d->cd->html->engine, cell, 0, FALSE);
 }
@@ -341,25 +343,6 @@ cell_widget (GtkHTMLEditCellProperties *
 
 	cell_page          = glade_xml_get_widget (xml, "cell_page");
 
-	gtk_table_attach (GTK_TABLE (glade_xml_get_widget (xml, "cell_scope_table1")),
-			  gtk_image_new_from_file (gnome_icon_theme_lookup_icon (d->cd->icon_theme, "stock_select-cell", 16, NULL, NULL)),
-			  0, 1, 0, 1, 0, 0, 0, 0);
-	filename = g_build_filename (ICONDIR, "table-table-16.png", NULL);
-	gtk_table_attach (GTK_TABLE (glade_xml_get_widget (xml, "cell_scope_table1")),
-			  gtk_image_new_from_file (filename),
-			  0, 1, 1, 2, 0, 0, 0, 0);
-	g_free (filename);
-	filename = g_build_filename (ICONDIR, "table-row-16.png", NULL);
-	gtk_table_attach (GTK_TABLE (glade_xml_get_widget (xml, "cell_scope_table2")),
-			  gtk_image_new_from_file (filename),
-			  0, 1, 0, 1, 0, 0, 0, 0);
-	g_free (filename);
-	filename = g_build_filename (ICONDIR, "table-column-16.png", NULL);
-	gtk_table_attach (GTK_TABLE (glade_xml_get_widget (xml, "cell_scope_table2")),
-			  gtk_image_new_from_file (filename),
-			  0, 1, 1, 2, 0, 0, 0, 0);
-	g_free (filename);
-
 	d->combo_bg_color = gi_color_combo_new (NULL, _("Transparent"), NULL,
 					     color_group_fetch ("cell_bg_color", d->cd));
         gi_color_combo_box_set_preview_relief (GI_COLOR_COMBO (d->combo_bg_color), GTK_RELIEF_NORMAL); \
@@ -371,11 +354,9 @@ cell_widget (GtkHTMLEditCellProperties *
 			    "selection-changed", G_CALLBACK (changed_bg_pixmap), d);
 
 	d->option_halign = glade_xml_get_widget (xml, "option_cell_halign");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_halign)), "selection-done",
-			  G_CALLBACK (changed_halign), d);
+	g_signal_connect (d->option_halign, "changed", G_CALLBACK (changed_halign), d);
 	d->option_valign = glade_xml_get_widget (xml, "option_cell_valign");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_valign)), "selection-done",
-			  G_CALLBACK (changed_valign), d);
+	g_signal_connect (d->option_valign, "changed", G_CALLBACK (changed_valign), d);
 
 	d->spin_width   = glade_xml_get_widget (xml, "spin_cell_width");
 	UPPER_FIX (width);
@@ -383,8 +364,8 @@ cell_widget (GtkHTMLEditCellProperties *
 	d->check_width  = glade_xml_get_widget (xml, "check_cell_width");
 	g_signal_connect (d->check_width, "toggled", G_CALLBACK (set_has_width), d);
 	d->option_width = glade_xml_get_widget (xml, "option_cell_width");
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (d->option_width)), "selection-done",
-			  G_CALLBACK (changed_width_percent), d);
+	gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width), 0);
+	g_signal_connect (d->option_width, "changed", G_CALLBACK (changed_width_percent), d);
 
 	d->check_wrap = glade_xml_get_widget (xml, "check_cell_wrap");
 	d->check_header = glade_xml_get_widget (xml, "check_cell_header");
@@ -427,19 +408,25 @@ set_ui (GtkHTMLEditCellProperties *d)
 	}
 
 	if (HTML_CLUE (d->cell)->halign == HTML_HALIGN_NONE)
-		gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_halign), HTML_HALIGN_LEFT);
+		gtk_combo_box_set_active (
+			GTK_COMBO_BOX (d->option_halign),
+			HTML_HALIGN_LEFT);
 	else
-		gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_halign), HTML_CLUE (d->cell)->halign - HTML_HALIGN_LEFT);
-	gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_valign), HTML_CLUE (d->cell)->valign - HTML_VALIGN_TOP);
+		gtk_combo_box_set_active (
+			GTK_COMBO_BOX (d->option_halign),
+			HTML_CLUE (d->cell)->halign - HTML_HALIGN_LEFT);
+	gtk_combo_box_set_active (
+		GTK_COMBO_BOX (d->option_valign),
+		HTML_CLUE (d->cell)->valign - HTML_VALIGN_TOP);
 
 	if (d->cell->percent_width) {
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_width), TRUE);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width), d->cell->fixed_width);
-		gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width), 1);
+		gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width), 1);
 	} else if (d->cell->fixed_width) {
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_width), TRUE);
 		gtk_spin_button_set_value (GTK_SPIN_BUTTON (d->spin_width), d->cell->fixed_width);
-		gtk_option_menu_set_history (GTK_OPTION_MENU (d->option_width), 0);
+		gtk_combo_box_set_active (GTK_COMBO_BOX (d->option_width), 0);
 	} else
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (d->check_width), FALSE);
 
Index: components/html-editor/template.h
===================================================================
--- components/html-editor/template.h	(revision 8346)
+++ components/html-editor/template.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_TEMPLATE_H_
 #define _GTK_HTML_TEMPLATE_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 GtkWidget             * template_insert          (GtkHTMLControlData *cd, gpointer *set_data);
Index: components/html-editor/test-html-editor-control.c
===================================================================
--- components/html-editor/test-html-editor-control.c	(revision 8346)
+++ components/html-editor/test-html-editor-control.c	(working copy)
@@ -28,11 +28,13 @@
 #include <glib/gi18n.h>
 #endif
 
-#include <gnome.h>
+#include <libgnomeui/gnome-ui-init.h>
+#include <libgnomeui/gnome-app-helper.h>
 #include <bonobo.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <unistd.h>
  
 #include <glib.h>
 #include <Editor.h>
@@ -132,7 +134,7 @@ save_through_plain_persist_stream (const
 
 		stream_mem = BONOBO_STREAM_MEM (stream);
 		text = g_byte_array_new ();
-		g_byte_array_append (text, stream_mem->buffer, stream_mem->pos);
+		g_byte_array_append (text, (guint8 *) stream_mem->buffer, stream_mem->pos);
 		bonobo_object_unref (BONOBO_OBJECT (stream));
 
 		fd = creat (filename, 0622);
@@ -576,9 +578,9 @@ main (int argc, char **argv)
 
 	/* We can't make any CORBA calls unless we're in the main loop.  So we
 	   delay creating the container here. */
-	gtk_idle_add ((GtkFunction) container_create, NULL);
+	g_idle_add ((GtkFunction) container_create, NULL);
 	if (argc > 1 && *argv [argc - 1] != '-')
-		gtk_idle_add ((GtkFunction) load_file, argv [argc - 1]);
+		g_idle_add ((GtkFunction) load_file, argv [argc - 1]);
 
 	bonobo_activate ();
 	bonobo_main ();
Index: components/html-editor/cell.h
===================================================================
--- components/html-editor/cell.h	(revision 8346)
+++ components/html-editor/cell.h	(working copy)
@@ -23,7 +23,7 @@
 #ifndef _GTK_HTML_CELL_H_
 #define _GTK_HTML_CELL_H_
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include "control-data.h"
 
 GtkWidget             * cell_properties      (GtkHTMLControlData *cd, gpointer *set_data);
Index: components/html-editor/search.c
===================================================================
--- components/html-editor/search.c	(revision 8346)
+++ components/html-editor/search.c	(working copy)
@@ -26,8 +26,6 @@
 #else
 #include <glib/gi18n.h>
 #endif
-#include <gnome.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include "search.h"
 #include "dialog.h"
 #include "htmlengine-search.h"
@@ -142,7 +140,7 @@ gtk_html_search_dialog_new (GtkHTML *htm
 	gtk_widget_show (dialog->entry);
 	gtk_widget_show_all (hbox);
 
-	gnome_window_icon_set_from_file (GTK_WINDOW (dialog->dialog), gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_search", 16, NULL, NULL));
+	gtk_window_set_icon_name (GTK_WINDOW (dialog->dialog), "gtk-find");
 
 	gtk_widget_grab_focus (dialog->entry);
 
@@ -168,7 +166,8 @@ gtk_html_search_dialog_destroy (GtkHTMLS
 void
 search (GtkHTMLControlData *cd)
 {
-	RUN_DIALOG (search, _("Find"));
+	run_dialog (&cd->search_dialog->dialog, cd->html, cd,
+		(DialogCtor) gtk_html_search_dialog_new, _("Find"));
 }
 
 void
Index: components/html-editor/gi-color-palette.c
===================================================================
--- components/html-editor/gi-color-palette.c	(revision 8346)
+++ components/html-editor/gi-color-palette.c	(working copy)
@@ -152,7 +152,7 @@ emit_color_changed (ColorPalette *P, Gdk
  * Add the new custom color as the first custom color in the custom color rows
  * and shift all of the others 'one step down'
  *
- * Also take care of setting up the GnomeColorPicker 'display'
+ * Also take care of setting up the GtkColorButton 'display'
  */
 static void
 color_palette_change_custom_color (ColorPalette *P, GdkColor const * const new)
@@ -163,7 +163,7 @@ color_palette_change_custom_color (Color
 
 	g_return_if_fail (P != NULL);
 	g_return_if_fail (new != NULL);
-	g_return_if_fail (P->picker);
+	g_return_if_fail (P->button);
 
 	/* make sure there is room */
 	if (P->custom_color_pos == -1)
@@ -191,11 +191,7 @@ color_palette_change_custom_color (Color
 			       "fill_color_gdk", new,
 			       "outline_color_gdk", new,
 			       NULL);
-	gnome_color_picker_set_i16 (P->picker,
-				    new->red,
-				    new->green,
-				    new->blue,
-				    0);
+	gtk_color_button_set_color (P->button, new);
 }
 
 /*
@@ -203,17 +199,12 @@ color_palette_change_custom_color (Color
  * And add it to the custom color row
  */
 static void
-cust_color_set (GtkWidget  *color_picker, guint r, guint g, guint b, guint a,
-		ColorPalette *P)
+cust_color_set (GtkColorButton *color_button, ColorPalette *P)
 {
-	GdkColor c_color;
+	GdkColor color;
 
-	c_color.red   = (gushort)r;
-	c_color.green = (gushort)g;
-	c_color.blue  = (gushort)b;
-
-	e_color_alloc_gdk (NULL, &c_color);
-	emit_color_changed (P, &c_color, TRUE, TRUE, FALSE);
+	gtk_color_button_get_color (color_button, &color);
+	emit_color_changed (P, &color, TRUE, TRUE, FALSE);
 }
 
 static void
@@ -232,7 +223,7 @@ color_clicked (GtkWidget *button, ColorP
 	GnomeCanvasItem *item;
 	GdkColor        *gdk_color;
 
-	index = GPOINTER_TO_INT (gtk_object_get_user_data (GTK_OBJECT (button)));
+	index = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "index"));
 	item  = P->items[index];
 
 	g_object_get (item,
@@ -305,7 +296,7 @@ color_palette_button_new(ColorPalette *P
 
 	canvas = gnome_canvas_new ();
 
-	gtk_widget_set_usize (canvas, COLOR_PREVIEW_WIDTH, COLOR_PREVIEW_HEIGHT);
+	gtk_widget_set_size_request (canvas, COLOR_PREVIEW_WIDTH, COLOR_PREVIEW_HEIGHT);
 	gtk_container_add (GTK_CONTAINER (button), canvas);
 
 	item  = gnome_canvas_item_new (GNOME_CANVAS_GROUP (gnome_canvas_root
@@ -326,8 +317,7 @@ color_palette_button_new(ColorPalette *P
 
 	g_signal_connect (button, "clicked",
 			  G_CALLBACK (color_clicked), P);
-	gtk_object_set_user_data (GTK_OBJECT (button),
-				  GINT_TO_POINTER (data));
+	g_object_set_data (G_OBJECT (button), "index", GINT_TO_POINTER (data));
 	return item;
 }
 
@@ -380,8 +370,7 @@ color_palette_setup (ColorPalette *P,
 	}
 
 	P->tool_tip = tool_tip = gtk_tooltips_new ();
-	g_object_ref (P->tool_tip);
-	gtk_object_sink (GTK_OBJECT (P->tool_tip));
+	g_object_ref_sink (P->tool_tip);
 
 	P->custom_color_pos = -1;
 	total = 0;
@@ -437,19 +426,19 @@ color_palette_setup (ColorPalette *P,
 	P->total = total;
 
 
-	/* "Custom" color - we'll pop up a GnomeColorPicker */
+	/* "Custom" color - we'll pop up a GtkColorDialog */
 	cust_label = gtk_label_new (_("Custom Color:"));
 	gtk_table_attach (GTK_TABLE (table), cust_label, 0, ncols - 3 ,
 			  row + 1, row + 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
 	/*
-	  Keep a poier to the picker so that we can update it's color
+	  Keep a pointer to the button so that we can update it's color
 	  to keep it in synch with that of other members of the group
 	*/
-	P->picker = GNOME_COLOR_PICKER (gnome_color_picker_new ());
-	gnome_color_picker_set_title (P->picker, _("Choose Custom Color"));
-	gtk_table_attach (GTK_TABLE (table), GTK_WIDGET (P->picker), ncols - 3, ncols,
+	P->button = GTK_COLOR_BUTTON (gtk_color_button_new ());
+	gtk_color_button_set_title (P->button, _("Choose Custom Color"));
+	gtk_table_attach (GTK_TABLE (table), GTK_WIDGET (P->button), ncols - 3, ncols,
 			  row + 1, row + 2, GTK_FILL | GTK_EXPAND, 0, 0, 0);
-	g_signal_connect (P->picker, "color_set",
+	g_signal_connect (P->button, "color_set",
 			  G_CALLBACK (cust_color_set), P);
 	return table;
 }
@@ -494,7 +483,7 @@ color_palette_get_color_picker (ColorPal
 {
 	g_return_val_if_fail (IS_COLOR_PALETTE (P), NULL);
 
-	return GTK_WIDGET (P->picker);
+	return GTK_WIDGET (P->button);
 }
 
 
Index: components/html-editor/editor-control-factory.c
===================================================================
--- components/html-editor/editor-control-factory.c	(revision 8346)
+++ components/html-editor/editor-control-factory.c	(working copy)
@@ -33,7 +33,7 @@
 #include <glib/gi18n.h>
 #endif
 #include <string.h>
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include <bonobo.h>
 #include <stdio.h>
 #include <glib.h>
@@ -42,6 +42,7 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <unistd.h>
 
 #ifndef O_BINARY
 #define O_BINARY 0
@@ -79,6 +80,7 @@
 #include "properties.h"
 #include "text.h"
 #include "paragraph.h"
+#include "paragraph-style.h"
 #include "body.h"
 #include "spellchecker.h"
 #include "html-stream-mem.h"
@@ -185,8 +187,7 @@ release (GtkWidget *widget, GdkEventButt
 			;
 		}
 		if (run_dialog) {
-			cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Properties"), 
-										     gnome_icon_theme_lookup_icon (cd->icon_theme, "stock_properties", 16, NULL, NULL));
+			cd->properties_dialog = gtk_html_edit_properties_dialog_new (cd, _("Properties"), "gtk-properties");
 			html_cursor_jump_to (e->cursor, e, cd->obj, 0);
 			html_engine_disable_selection (e);
 			html_engine_set_mark (e);
@@ -260,7 +261,7 @@ load_from_file (GtkHTML *html,
 	}
       
        	while ((len = read (fd, buffer, 4096)) > 0) {
-		gtk_html_write (html, handle, buffer, len);
+		gtk_html_write (html, handle, (gchar *) buffer, len);
 	}
 
 	if (len < 0) {
@@ -418,6 +419,7 @@ editor_set_format (GtkHTMLControlData *c
 
 	toolbar_update_format (cd);
 	menubar_update_format (cd);
+	paragraph_style_update_store (cd);
 
 	if (html->engine->painter != (HTMLPainter *)p) {
 		html_gdk_painter_unrealize (old_p);
Index: components/html-editor/search.h
===================================================================
--- components/html-editor/search.h	(revision 8346)
+++ components/html-editor/search.h	(working copy)
@@ -25,7 +25,6 @@
 
 typedef struct _GtkHTMLSearchDialog  GtkHTMLSearchDialog;
 
-#include <gnome.h>
 #include "gtkhtml.h"
 #include "control-data.h"
 
Index: components/html-editor/replace.c
===================================================================
--- components/html-editor/replace.c	(revision 8346)
+++ components/html-editor/replace.c	(working copy)
@@ -26,8 +26,6 @@
 #else
 #include <glib/gi18n.h>
 #endif
-#include <gnome.h>
-#include <libgnomeui/gnome-window-icon.h>
 #include "replace.h"
 #include "dialog.h"
 #include "htmlengine.h"
@@ -77,7 +75,6 @@ static GtkHTMLReplaceAskDialog *
 ask_dialog_new (HTMLEngine *e)
 {
 	GtkHTMLReplaceAskDialog *d;
-	char *filename;
 
 	d = g_new (GtkHTMLReplaceAskDialog, 1);
 	/* we use CANCEL response for close, because we want Esc to close the dialog - see gtkdialog.c */
@@ -90,9 +87,7 @@ ask_dialog_new (HTMLEngine *e)
 	d->engine = e;
 	d->finished = FALSE;
 
-	filename = g_build_filename (ICONDIR, "search-and-replace-24.png", NULL);
-	gnome_window_icon_set_from_file (GTK_WINDOW (d->dialog), filename);
-	g_free (filename);
+	gtk_window_set_icon_name (GTK_WINDOW (d->dialog), "gtk-find-and-replace");
 
 	g_signal_connect (d->dialog, "response", G_CALLBACK (ask_dialog_response), d);
 
@@ -147,8 +142,11 @@ replace_dialog_response (GtkDialog *dial
 				     GTK_TOGGLE_BUTTON (d->backward)->active == 0, FALSE,
 				     ask, d);
 		break;
-	case GTK_RESPONSE_CANCEL:
+	case GTK_RESPONSE_DELETE_EVENT:
 	case GTK_RESPONSE_CLOSE:
+	case GTK_RESPONSE_CANCEL:
+		d->cd->replace_dialog = NULL;
+		gtk_html_replace_dialog_destroy (d);
 		gtk_widget_grab_focus (GTK_WIDGET (d->html));
 		break;
 	}
@@ -168,7 +166,6 @@ gtk_html_replace_dialog_new (GtkHTML *ht
 	GtkWidget *hbox, *vbox;
 	GtkWidget *table;
 	GtkWidget *label;
-	gchar *filename;
 
 	/* we use CANCEL response for close, because we want Esc to close the dialog - see gtkdialog.c */
 	dialog->dialog         = GTK_DIALOG (gtk_dialog_new_with_buttons (_("Replace"), NULL, 0,
@@ -219,9 +216,7 @@ gtk_html_replace_dialog_new (GtkHTML *ht
 	gtk_widget_show_all (table);
 	gtk_widget_show_all (hbox);
 
-	filename = g_build_filename (ICONDIR, "search-and-replace-24.png", NULL);
-	gnome_window_icon_set_from_file (GTK_WINDOW (dialog->dialog), filename);
-	g_free (filename);
+	gtk_window_set_icon_name (GTK_WINDOW (dialog->dialog), "gtk-find-and-replace");
 
 	gtk_widget_grab_focus (dialog->entry_search);
 
@@ -237,7 +232,6 @@ gtk_html_replace_dialog_new (GtkHTML *ht
 void
 replace (GtkHTMLControlData *cd)
 {
-	RUN_DIALOG (replace, _("Replace"));
-	gtk_html_replace_dialog_destroy (cd->replace_dialog);
-	cd->replace_dialog = NULL;
+	run_dialog (&cd->replace_dialog->dialog, cd->html, cd,
+		(DialogCtor) gtk_html_replace_dialog_new, _("Replace"));
 }
Index: components/html-editor/gi-color-palette.h
===================================================================
--- components/html-editor/gi-color-palette.h	(revision 8346)
+++ components/html-editor/gi-color-palette.h	(working copy)
@@ -30,11 +30,11 @@
 #ifndef GI_COLOR_PALETTE_H
 #define GI_COLOR_PALETTE_H
 
+#include <gtk/gtkcolorbutton.h>
 #include <gtk/gtktooltips.h>
 #include <gtk/gtkvbox.h>
 #include <gtk/gtkwidget.h>
 #include <libgnomecanvas/gnome-canvas.h>
-#include <libgnomeui/gnome-color-picker.h>
 #include "gi-color-group.h"
 
 G_BEGIN_DECLS
@@ -44,7 +44,7 @@ typedef struct _ColorNamePair ColorNameP
 typedef struct _ColorPalette {
 	GtkVBox          vbox;
 	GtkTooltips      *tool_tip;
-	GnomeColorPicker *picker;
+	GtkColorButton   *button;
 	/*
 	 * Array of colors
 	 */
Index: components/html-editor/replace.h
===================================================================
--- components/html-editor/replace.h	(revision 8346)
+++ components/html-editor/replace.h	(working copy)
@@ -25,7 +25,7 @@
 
 typedef struct _GtkHTMLReplaceDialog GtkHTMLReplaceDialog;
 
-#include <gnome.h>
+#include "gtkhtml.h"
 #include "control-data.h"
 
 GtkHTMLReplaceDialog * gtk_html_replace_dialog_new     (GtkHTML *html, GtkHTMLControlData *cd);
Index: components/html-editor/gi-combo-box.c
===================================================================
--- components/html-editor/gi-combo-box.c	(revision 8346)
+++ components/html-editor/gi-combo-box.c	(working copy)
@@ -434,10 +434,8 @@ gi_combo_box_init (GiComboBox *combo_box
 	 */
 
 	combo_box->priv->toplevel = gtk_window_new (GTK_WINDOW_POPUP);
-	gtk_widget_ref (combo_box->priv->toplevel);
-	gtk_object_sink (GTK_OBJECT (combo_box->priv->toplevel));
-	gtk_window_set_policy (GTK_WINDOW (combo_box->priv->toplevel),
-			       FALSE, TRUE, FALSE);
+	g_object_ref_sink (combo_box->priv->toplevel);
+	gtk_window_set_resizable (GTK_WINDOW (combo_box->priv->toplevel), TRUE);
 
 	combo_box->priv->popup = gtk_event_box_new ();
 	gtk_container_add (GTK_CONTAINER (combo_box->priv->toplevel),
@@ -527,8 +525,7 @@ gtk_combo_popup_tear_off (GiComboBox *co
 		
 		/* FIXME: made this a toplevel, not a dialog ! */
 		tearoff = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-		gtk_widget_ref (tearoff);
-		gtk_object_sink (GTK_OBJECT (tearoff));
+		g_object_ref_sink (tearoff);
 		combo->priv->tearoff_window = tearoff;
 		gtk_widget_set_app_paintable (tearoff, TRUE);
 		g_signal_connect (tearoff, "key_press_event",
@@ -539,8 +536,7 @@ gtk_combo_popup_tear_off (GiComboBox *co
 					   "gtk-combo-title");
 		if (title)
 			gdk_window_set_title (tearoff->window, title);
-		gtk_window_set_policy (GTK_WINDOW (tearoff),
-				       FALSE, TRUE, FALSE);
+		gtk_window_set_resizable (GTK_WINDOW (tearoff), TRUE);
 		gtk_window_set_transient_for 
 			(GTK_WINDOW (tearoff),
 			 GTK_WINDOW (gtk_widget_get_toplevel
@@ -630,9 +626,9 @@ gtk_combo_tearoff_bg_copy (GiComboBox *c
 				   0, 0, 0, 0, -1, -1);
 		g_object_unref (gc);
       
-		gtk_widget_set_usize (combo->priv->tearoff_window,
-				      widget->allocation.width,
-				      widget->allocation.height);
+		gtk_widget_set_size_request (combo->priv->tearoff_window,
+					     widget->allocation.width,
+					     widget->allocation.height);
       
 		gdk_window_set_back_pixmap
 			(combo->priv->tearoff_window->window, pixmap, FALSE);
@@ -655,26 +651,24 @@ gtk_combo_popup_reparent (GtkWidget *pop
 			  GtkWidget *new_parent, 
 			  gboolean unrealize)
 {
-	GtkObject *object = GTK_OBJECT (popup);
-	gboolean was_floating = GTK_OBJECT_FLOATING (object);
+	gboolean was_floating = g_object_is_floating (popup);
 
-	g_object_ref (object);
-	gtk_object_sink (object);
+	g_object_ref_sink (popup);
 
 	if (unrealize) {
-		g_object_ref (object);
+		g_object_ref (popup);
 		gtk_container_remove (GTK_CONTAINER (popup->parent), popup);
 		gtk_container_add (GTK_CONTAINER (new_parent), popup);
-		g_object_unref (object);
+		g_object_unref (popup);
 	}
 	else
 		gtk_widget_reparent (GTK_WIDGET (popup), new_parent);
-	gtk_widget_set_usize (new_parent, -1, -1);
+	gtk_widget_set_size_request (new_parent, -1, -1);
   
 	if (was_floating)
-		GTK_OBJECT_SET_FLAGS (object, GTK_FLOATING);
+		g_object_force_floating (G_OBJECT (popup));
 	else
-		g_object_unref (object);
+		g_object_unref (popup);
 }
 
 /**
Index: components/html-editor/control-data.c
===================================================================
--- components/html-editor/control-data.c	(revision 8346)
+++ components/html-editor/control-data.c	(working copy)
@@ -53,7 +53,7 @@ gtk_html_control_data_new (GtkHTML *html
 	ncd->replace_text_replace    = NULL;
 	ncd->has_spell_control_set   = FALSE;
 	ncd->language                = NULL;
-	ncd->icon_theme              = gnome_icon_theme_new ();
+	ncd->paragraph_style_store   = NULL;
 
 	spell_init (html, ncd);
 
@@ -86,10 +86,8 @@ gtk_html_control_data_destroy (GtkHTMLCo
 	if (cd->languages)
 		CORBA_free (cd->languages);
 
-	if (cd->icon_theme) {
-		g_object_unref (cd->icon_theme);
-		cd->icon_theme = NULL;
-	}
+	if (cd->paragraph_style_store)
+		g_object_unref (cd->paragraph_style_store);
 
 	g_free (cd);
 }
Index: components/html-editor/Makefile.am
===================================================================
--- components/html-editor/Makefile.am	(revision 8346)
+++ components/html-editor/Makefile.am	(working copy)
@@ -92,6 +92,8 @@ libgnome_gtkhtml_editor_la_SOURCES =		\
 	menubar.h				\
 	paragraph.c				\
 	paragraph.h				\
+	paragraph-style.c			\
+	paragraph-style.h			\
 	persist-file.c				\
 	persist-file.h				\
 	persist-stream.c			\
Index: components/html-editor/properties.c
===================================================================
--- components/html-editor/properties.c	(revision 8346)
+++ components/html-editor/properties.c	(working copy)
@@ -27,7 +27,6 @@
 #else
 #include <glib/gi18n.h>
 #endif
-#include <libgnomeui/gnome-window-icon.h>
 #include "dialog.h"
 #include "properties.h"
 
@@ -91,7 +90,7 @@ dialog_response (GtkDialog *dialog, gint
 }
 
 GtkHTMLEditPropertiesDialog *
-gtk_html_edit_properties_dialog_new (GtkHTMLControlData *cd, gchar *title, gchar *icon_path)
+gtk_html_edit_properties_dialog_new (GtkHTMLControlData *cd, gchar *title, gchar *icon_name)
 {
 	GtkHTMLEditPropertiesDialog *d = g_new (GtkHTMLEditPropertiesDialog, 1);
 	GtkWidget *vbox;
@@ -120,7 +119,7 @@ gtk_html_edit_properties_dialog_new (Gtk
 
 	g_signal_connect (d->dialog, "response", G_CALLBACK (dialog_response), d);
 
-	gnome_window_icon_set_from_file (GTK_WINDOW (d->dialog), icon_path);
+	gtk_window_set_icon_name (GTK_WINDOW (d->dialog), icon_name);
 	gtk_dialog_set_response_sensitive (GTK_DIALOG (d->dialog), 0, FALSE);
 	gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (d->dialog)->vbox), 6);
 
Index: components/html-editor/control-data.h
===================================================================
--- components/html-editor/control-data.h	(revision 8346)
+++ components/html-editor/control-data.h	(working copy)
@@ -30,7 +30,6 @@ typedef struct _GtkHTMLEditPropertiesDia
 
 #include <gtkhtml.h>
 #include <bonobo.h>
-#include <libgnomeui/gnome-icon-theme.h>
 #include "persist-stream.h"
 #include "htmlgdkpainter.h"
 #include "search.h"
@@ -111,7 +110,7 @@ struct _GtkHTMLControlData {
 	GtkWidget *file_dialog;
 	gboolean file_html;
 
-	GnomeIconTheme *icon_theme;
+	GtkListStore *paragraph_style_store;
 };
 
 GtkHTMLControlData * gtk_html_control_data_new       (GtkHTML *html, GtkWidget *vbox);
Index: components/html-editor/link.c
===================================================================
--- components/html-editor/link.c	(revision 8346)
+++ components/html-editor/link.c	(working copy)
@@ -28,6 +28,7 @@
 #include <glib/gi18n.h>
 #endif
 #include <glade/glade.h>
+#include <libgnome/libgnome.h>
 
 #include "htmlcolor.h"
 #include "htmlcolorset.h"
Index: components/html-editor/body.c
===================================================================
--- components/html-editor/body.c	(revision 8346)
+++ components/html-editor/body.c	(working copy)
@@ -50,7 +50,6 @@ struct _GtkHTMLEditBodyProperties {
 };
 typedef struct _GtkHTMLEditBodyProperties GtkHTMLEditBodyProperties;
 
-#define TEMPLATES 9
 typedef struct {
 	gchar *name;
 	gchar *bg_pixmap;
@@ -60,7 +59,7 @@ typedef struct {
 	gint left_margin;
 } BodyTemplate;
 
-static BodyTemplate body_templates [TEMPLATES] = {
+static BodyTemplate body_templates[] = {
 	{
 		N_("None"),
 		NULL,
@@ -175,12 +174,12 @@ entry_changed (GtkWidget *w, GtkHTMLEdit
 }
 
 static void
-changed_template (GtkWidget *w, GtkHTMLEditBodyProperties *d)
+changed_template (GtkComboBox *combo_box, GtkHTMLEditBodyProperties *d)
 {
 	gint template, left_margin = 10;
 	gchar *filename;
 
-	template = g_list_index (GTK_MENU_SHELL (w)->children, gtk_menu_get_active (GTK_MENU (w)));
+	template = gtk_combo_box_get_active (combo_box);
 
 	filename = (body_templates [template].bg_pixmap ?
 		    g_build_filename (ICONDIR, body_templates [template].bg_pixmap, NULL) :
@@ -213,24 +212,6 @@ changed_template (GtkWidget *w, GtkHTMLE
 	d->cd->html->engine->leftBorder = left_margin;
 }
 
-static void
-fill_templates (GtkHTMLEditBodyProperties *d)
-{
-	GtkWidget *menu;
-	gint i;
-
-	menu = gtk_menu_new ();
-
-	for (i = 0; i < TEMPLATES; i ++) {
-		GtkWidget *item;
-
-		item = gtk_menu_item_new_with_label (_(body_templates [i].name));
-		gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-		gtk_widget_show (item);
-	}
-	gtk_option_menu_set_menu (GTK_OPTION_MENU (d->option_template), menu);
-}
-
 GtkWidget *
 body_properties (GtkHTMLControlData *cd, gpointer *set_data)
 {
@@ -283,16 +264,20 @@ body_properties (GtkHTMLControlData *cd,
 	}
 
 
-	atk_object_set_name (gtk_widget_get_accessible (GTK_FILE_CHOOSER (data->pixmap_entry)), _("Background Image File Path"));
+	atk_object_set_name (gtk_widget_get_accessible (data->pixmap_entry), _("Background Image File Path"));
 
 	t1 = gtk_table_new (2, 2, FALSE);
 	gtk_table_set_col_spacings (GTK_TABLE (t1), 6);
 	gtk_table_set_row_spacings (GTK_TABLE (t1), 6);
 
 	hbox = gtk_hbox_new (FALSE, 6);
-	data->option_template = gtk_option_menu_new ();
+	data->option_template = gtk_combo_box_new_text ();
 	atk_object_set_name (gtk_widget_get_accessible (data->option_template), _("Template"));
-	fill_templates (data);
+	for (i = 0; i < G_N_ELEMENTS (body_templates); i++)
+		gtk_combo_box_append_text (
+			GTK_COMBO_BOX (data->option_template),
+			gettext (body_templates[i].name));
+	gtk_combo_box_set_active (GTK_COMBO_BOX (data->option_template), 0);
 	gtk_box_pack_start (GTK_BOX (hbox), data->option_template, FALSE, FALSE, 0);
 	editor_hig_attach_row (t1, _("T_emplate:"), hbox, 0);
 
@@ -313,8 +298,7 @@ body_properties (GtkHTMLControlData *cd,
 	/* connect signal handlers */
 	gtk_widget_show_all (main_vbox);
 
-	g_signal_connect (gtk_option_menu_get_menu (GTK_OPTION_MENU (data->option_template)),
-			  "selection-done", G_CALLBACK (changed_template), data);
+	g_signal_connect (data->option_template, "changed", G_CALLBACK (changed_template), data);
         g_signal_connect (data->combo [0], "color_changed", G_CALLBACK (color_changed), data);
         g_signal_connect (data->combo [1], "color_changed", G_CALLBACK (color_changed), data);
         g_signal_connect (data->combo [2], "color_changed", G_CALLBACK (color_changed), data);
Index: art/Makefile.am
===================================================================
--- art/Makefile.am	(revision 8346)
+++ art/Makefile.am	(working copy)
@@ -1,58 +1,17 @@
 iconsdir = $(datadir)/gtkhtml-@GTKHTML_API_VERSION@/icons
 icons_DATA = \
-	16_cut.png			\
-	24_cut.png			\
-	16_copy.png			\
-	24_copy.png			\
-	16_paste.png			\
-	24_paste.png			\
 	bulb.png			\
 	info_bulb.png			\
 	empty_image.png			\
 	flowers.png			\
-	font-tt-16.png			\
-	font-tt-24.png			\
 	html-viewer.png			\
-	insert-table-16.png		\
-	insert-table-24.png		\
-	insert-image-16.png		\
-	insert-image-24.png		\
-	insert-link-16.png		\
-	insert-link-24.png		\
-	insert-object-16.png		\
-	insert-object-24.png		\
-	insert-rule-16.png		\
-	insert-rule-24.png		\
-	properties-16.png		\
-	redo-16.png			\
-	redo-24.png			\
 	rule-blue-left.png		\
 	rule-blue-center.png		\
 	rule-blue-right.png		\
 	rule-yellow-flowers-left.png	\
 	rule-yellow-flowers-center.png	\
 	rule-yellow-flowers-right.png	\
-	search-16.png			\
-	search-24.png			\
-	search-and-replace-16.png	\
-	search-and-replace-24.png	\
-	smiley-1.png			\
-	smiley-2.png			\
-	smiley-3.png			\
-	smiley-4.png			\
-	smiley-5.png			\
-	smiley-6.png			\
-	smiley-8.png			\
-	smiley-9.png			\
-	smiley-10.png			\
-	smiley-11.png			\
-	smiley-12.png			\
-	table-table-16.png		\
-	table-row-16.png		\
-	table-column-16.png		\
 	transparent.png			\
-	undo-16.png			\
-	undo-24.png			\
 	paper.png			\
 	ribbon.jpg			\
 	midnight-stars.jpg		\
Index: configure.in
===================================================================
--- configure.in	(revision 8346)
+++ configure.in	(working copy)
@@ -22,7 +22,7 @@ GETTEXT_PACKAGE=${GTKHTML_RELEASE_STRING
 AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Package name for gettext])
 
-I18N_LIB_CFLAGS="-DGNOME_EXPLICIT_TRANSLATION_DOMAIN=\\\"${GTKHTML_RELEASE_STRING}\\\" -DBONOBO_EXPLICIT_TRANSLATION_DOMAIN=\\\"${GTKHTML_RELEASE_STRING}\\\""
+I18N_LIB_CFLAGS="-DGNOME_EXPLICIT_TRANSLATION_DOMAIN=\\\"${GTKHTML_RELEASE_STRING}\\\""
 AC_SUBST(I18N_LIB_CFLAGS)
 
 AM_INIT_AUTOMAKE($PACKAGE, 3.13.3)
Index: src/htmlgdkpainter.c
===================================================================
--- src/htmlgdkpainter.c	(revision 8346)
+++ src/htmlgdkpainter.c	(working copy)
@@ -675,7 +675,7 @@ draw_spell_error (HTMLPainter *painter, 
 {
 	HTMLGdkPainter *gdk_painter;
 	GdkGCValues values;
-	gchar dash [2];
+	gint8 dash_list[] = { 2, 2 };
 
 	gdk_painter = HTML_GDK_PAINTER (painter);
 
@@ -684,12 +684,10 @@ draw_spell_error (HTMLPainter *painter, 
 
 	gdk_gc_get_values (gdk_painter->gc, &values);
 	gdk_gc_set_fill (gdk_painter->gc, GDK_OPAQUE_STIPPLED);
-	dash [0] = 2;
-	dash [1] = 2;
 	gdk_gc_set_line_attributes (gdk_painter->gc, 1, GDK_LINE_ON_OFF_DASH, values.cap_style, values.join_style);
-	gdk_gc_set_dashes (gdk_painter->gc, 2, dash, 2);
+	gdk_gc_set_dashes (gdk_painter->gc, 2, dash_list, 2);
 	gdk_draw_line (gdk_painter->pixmap, gdk_painter->gc, x, y, x + width, y);
-	gdk_gc_set_dashes (gdk_painter->gc, 0, dash, 2);
+	gdk_gc_set_dashes (gdk_painter->gc, 0, dash_list, 2);
 	gdk_draw_line (gdk_painter->pixmap, gdk_painter->gc, x, y + 1, x + width, y + 1);
 	gdk_gc_set_line_attributes (gdk_painter->gc, values.line_width,
 				    values.line_style, values.cap_style, values.join_style);
Index: src/test.c
===================================================================
--- src/test.c	(revision 8346)
+++ src/test.c	(working copy)
@@ -169,10 +169,10 @@ print_cb (GtkWidget *widget, gpointer da
 	gpc = gnome_print_job_get_context (job);
 	config = gnome_print_job_get_config (job);
 
-	gnome_print_config_set (config, "Printer", "GENERIC");
+	gnome_print_config_set (config, (guchar *) "Printer", (guchar *) "GENERIC");
 	gnome_print_job_print_to_file (job, "o.ps");
 	
-	gnome_print_config_set (config, GNOME_PRINT_KEY_PAPER_SIZE, "USLetter");
+	gnome_print_config_set (config, (guchar *) GNOME_PRINT_KEY_PAPER_SIZE, (guchar *) "USLetter");
 	
 	gtk_html_print (GTK_HTML (html), gpc);
 
@@ -224,8 +224,8 @@ compare_examples (const void *a,
 		}
 
 		if (p_digit) {
-			int num_a = atoi (p);
-			int num_b = atoi (q);
+			int num_a = atoi ((const gchar *) p);
+			int num_b = atoi ((const gchar *) q);
 
 			if (num_a < num_b) {
 				result = -1;
@@ -250,8 +250,8 @@ compare_examples (const void *a,
 			while (*(q + q_len) && !g_ascii_isdigit (*(q + q_len)))
 				q_len++;
 
-			p_str = g_strndup (p, p_len);
-			q_str = g_strndup (q, q_len);
+			p_str = g_strndup ((gchar *) p, p_len);
+			q_str = g_strndup ((gchar *) q, q_len);
 
 			result = g_utf8_collate (p_str, q_str);
 			g_free (p_str);
Index: src/htmltextslave.c
===================================================================
--- src/htmltextslave.c	(revision 8346)
+++ src/htmltextslave.c	(working copy)
@@ -740,7 +740,8 @@ draw_text (HTMLTextSlave *self,
 	HTMLText *text = self->owner;
 	GSList *cur;
 	int run_width;
-	int selection_start_index, selection_end_index;
+	int selection_start_index = 0;
+	int selection_end_index = 0;
 	int isect_start, isect_end;
 	gboolean selection;
 	GdkColor selection_fg, selection_bg;
@@ -854,7 +855,7 @@ draw_focus_rectangle  (HTMLTextSlave *sl
 {
 	HTMLGdkPainter *p;
 	GdkGCValues values;
-	gchar dash [2];
+	gint8 dash_list[] = { 1, 1 };
 	HTMLEngine *e;
 
 	if (painter->widget && GTK_IS_HTML (painter->widget))
@@ -872,10 +873,8 @@ draw_focus_rectangle  (HTMLTextSlave *sl
 									  painter, HTMLTextColor)->color);
 	gdk_gc_get_values (p->gc, &values);
 
-	dash [0] = 1;
-	dash [1] = 1;
 	gdk_gc_set_line_attributes (p->gc, 1, GDK_LINE_ON_OFF_DASH, values.cap_style, values.join_style);
-	gdk_gc_set_dashes (p->gc, 2, dash, 2);
+	gdk_gc_set_dashes (p->gc, 2, dash_list, 2);
 	gdk_draw_rectangle (p->pixmap, p->gc, 0, box->x - p->x1, box->y - p->y1, box->width - 1, box->height - 1);
 	gdk_gc_set_line_attributes (p->gc, 1, values.line_style, values.cap_style, values.join_style);
 }
Index: src/htmlimage.c
===================================================================
--- src/htmlimage.c	(revision 8346)
+++ src/htmlimage.c	(working copy)
@@ -384,7 +384,7 @@ draw_focus  (HTMLImage *image, HTMLPaint
 {
 	HTMLGdkPainter *p;
 	GdkGCValues values;
-	gchar dash [2];
+	gint8 dash_list[] = { 1, 1 };
 	HTMLEngine *e;
 
 	if (painter->widget && GTK_IS_HTML (painter->widget))
@@ -402,10 +402,8 @@ draw_focus  (HTMLImage *image, HTMLPaint
 									  painter, HTMLTextColor)->color);
 	gdk_gc_get_values (p->gc, &values);
 
-	dash [0] = 1;
-	dash [1] = 1;
 	gdk_gc_set_line_attributes (p->gc, 1, GDK_LINE_ON_OFF_DASH, values.cap_style, values.join_style);
-	gdk_gc_set_dashes (p->gc, 2, dash, 2);
+	gdk_gc_set_dashes (p->gc, 2, dash_list, 2);
 	gdk_draw_rectangle (p->pixmap, p->gc, 0, box->x - p->x1, box->y - p->y1, box->width - 1, box->height - 1);
 	gdk_gc_set_line_attributes (p->gc, 1, values.line_style, values.cap_style, values.join_style);
 }
@@ -1146,7 +1144,7 @@ html_image_factory_write_pixbuf (GtkHTML
 	HTMLImagePointer *p = user_data;
 
 	/* FIXME ! Check return value */
-	gdk_pixbuf_loader_write (p->loader, buffer, size, NULL);
+	gdk_pixbuf_loader_write (p->loader, (const guchar *) buffer, size, NULL);
 }
 
 static void
@@ -1313,9 +1311,9 @@ html_image_pointer_new (const char *file
 	retval->interests = NULL;
 	retval->factory = factory;
 	retval->stall = FALSE;
-	retval->stall_timeout = gtk_timeout_add (STALL_INTERVAL, 
-						 (GtkFunction)html_image_pointer_timeout,
-						 retval);
+	retval->stall_timeout = g_timeout_add (STALL_INTERVAL, 
+					       (GtkFunction)html_image_pointer_timeout,
+					       retval);
 	retval->animation_timeout = 0;
 	return retval;
 }
@@ -1379,7 +1377,7 @@ static void
 html_image_pointer_remove_stall (HTMLImagePointer *ip)
 {
 	if (ip->stall_timeout) {
-		gtk_timeout_remove (ip->stall_timeout);
+		g_source_remove (ip->stall_timeout);
 		ip->stall_timeout = 0;
 	}
 }
Index: src/htmlinterval.c
===================================================================
--- src/htmlinterval.c	(revision 8346)
+++ src/htmlinterval.c	(working copy)
@@ -58,7 +58,7 @@ html_point_cursor_object_eq (HTMLPoint *
 inline void
 html_point_next_cursor (HTMLPoint *p)
 {
-	p->object = html_object_next_cursor (p->object, &p->offset);
+	p->object = html_object_next_cursor (p->object, (gint *) &p->offset);
 }
 
 HTMLInterval *
Index: src/htmliframe.c
===================================================================
--- src/htmliframe.c	(revision 8346)
+++ src/htmliframe.c	(working copy)
@@ -463,7 +463,7 @@ save (HTMLObject *s,
 
 		if (state->error || 
 		    !html_engine_save_output_buffer (state,
-						     html_engine_save_buffer_peek_text (buffer),
+						     (gchar *) html_engine_save_buffer_peek_text (buffer),
 						     html_engine_save_buffer_peek_text_bytes (buffer))) {
 			html_engine_save_buffer_free (buffer, TRUE);
 			return FALSE;
@@ -514,7 +514,7 @@ save_plain (HTMLObject *s,
 		html_object_save_plain (e->clue, buffer, requested_width);
 		if (state->error || 
 		    !html_engine_save_output_buffer (state,
-						     html_engine_save_buffer_peek_text (buffer),
+						     (gchar *) html_engine_save_buffer_peek_text (buffer),
 						     html_engine_save_buffer_peek_text_bytes (buffer))) {
 			html_engine_save_buffer_free (buffer, TRUE);
 			return FALSE;
Index: src/htmlengine.c
===================================================================
--- src/htmlengine.c	(revision 8346)
+++ src/htmlengine.c	(working copy)
@@ -1403,7 +1403,7 @@ is_leading_space (guchar *str)
 		if (!(isspace (*str) || IS_UTF8_NBSP (str))) 
 			return FALSE;
 		
-		str = g_utf8_next_char (str);
+		str = (guchar *) g_utf8_next_char (str);
 	}
 	return TRUE;
 }
@@ -1444,7 +1444,7 @@ parse_object_params(HTMLEngine *p, HTMLO
 		
 		if (*str == '\0' || 
 		    *str == '\n' ||
-		    is_leading_space (str)) {
+		    is_leading_space ((guchar *) str)) {
 				str = html_tokenizer_next_token (p->ht);
 				/* printf ("\"%s\": was the string\n", str); */
 				continue;
@@ -4480,7 +4480,7 @@ html_engine_stream_write (GtkHTMLStream 
 	html_tokenizer_write (e->ht, buffer, size == -1 ? strlen (buffer) : size);
 
 	if (e->parsing && e->timerId == 0) {
-		e->timerId = gtk_timeout_add (10, (GtkFunction) html_engine_timer_event, e);
+		e->timerId = g_timeout_add (10, (GtkFunction) html_engine_timer_event, e);
 	}
 }
 
@@ -4586,7 +4586,7 @@ html_engine_schedule_update (HTMLEngine 
 		return;
 	DI (printf ("html_engine_schedule_update - timer %d\n", e->updateTimer));
 	if (e->updateTimer == 0)
-		e->updateTimer = gtk_idle_add ((GtkFunction) html_engine_update_event, e);
+		e->updateTimer = g_idle_add ((GtkFunction) html_engine_update_event, e);
 }
 
 
@@ -4856,7 +4856,7 @@ html_engine_schedule_redraw (HTMLEngine 
 	else if (e->redraw_idle_id == 0) {
 		clear_pending_expose (e);
 		html_draw_queue_clear (e->draw_queue);
-		e->redraw_idle_id = gtk_idle_add ((GtkFunction) redraw_idle, e);
+		e->redraw_idle_id = g_idle_add ((GtkFunction) redraw_idle, e);
 	}
 }
 
@@ -5043,7 +5043,7 @@ html_engine_parse (HTMLEngine *e)
 
 	e->avoid_para = FALSE;
 
-	e->timerId = gtk_idle_add ((GtkFunction) html_engine_timer_event, e);
+	e->timerId = g_idle_add ((GtkFunction) html_engine_timer_event, e);
 }
 
 
@@ -5110,7 +5110,7 @@ html_engine_get_link_at (HTMLEngine *e, 
 	if (e->clue == NULL)
 		return NULL;
 
-	obj = html_engine_get_object_at (e, x, y, &offset, FALSE);
+	obj = html_engine_get_object_at (e, x, y, (guint *) &offset, FALSE);
 
 	if (obj != NULL)
 		return html_object_get_url (obj, offset);
@@ -5617,7 +5617,7 @@ html_engine_thaw (HTMLEngine *engine)
 	if (engine->freeze_count == 1) {
 		if (engine->thaw_idle_id == 0) {
 			DF (printf ("queueing thaw_idle %d\n", engine->freeze_count);)
-			engine->thaw_idle_id = gtk_idle_add (thaw_idle, engine);
+			engine->thaw_idle_id = g_idle_add (thaw_idle, engine);
 		}
 	} else {
 		engine->freeze_count--;
Index: src/htmlcursor.c
===================================================================
--- src/htmlcursor.c	(revision 8346)
+++ src/htmlcursor.c	(working copy)
@@ -211,7 +211,7 @@ forward (HTMLCursor *cursor)
 	if (!html_object_cursor_forward (cursor->object, cursor)) {
 		HTMLObject *next;
 
-		next = html_object_next_cursor (cursor->object, &cursor->offset);
+		next = html_object_next_cursor (cursor->object, (gint *) &cursor->offset);
 		if (next) {
 			if (!html_object_is_container (next))
 				cursor->offset = (next->parent == cursor->object->parent) ? 1 : 0;
@@ -253,7 +253,7 @@ backward (HTMLCursor *cursor)
 	if (!html_object_cursor_backward (cursor->object, cursor)) {
 		HTMLObject *prev;
 
-		prev = html_object_prev_cursor (cursor->object, &cursor->offset);
+		prev = html_object_prev_cursor (cursor->object, (gint *) &cursor->offset);
 		if (prev) {
 			if (!html_object_is_container (prev))
 				cursor->offset = html_object_get_length (prev);
@@ -851,7 +851,7 @@ move_to_next_object (HTMLCursor *cursor,
 {
 	HTMLObject *next;
 
-	next = html_object_next_cursor (cursor->object, &cursor->offset);
+	next = html_object_next_cursor (cursor->object, (gint *) &cursor->offset);
 	if (next && next->parent) {
 		cursor->object = next;
 		cursor->position ++;
@@ -875,7 +875,7 @@ move_to_prev_object (HTMLCursor *cursor,
 {
 	HTMLObject *prev;
 
-	prev = html_object_prev_cursor (cursor->object, &cursor->offset);
+	prev = html_object_prev_cursor (cursor->object, (gint *) &cursor->offset);
 	if (prev && prev->parent) {
 		cursor->object = prev;
 		cursor->position --;
Index: src/htmlengine-edit-selection-updater.c
===================================================================
--- src/htmlengine-edit-selection-updater.c	(revision 8346)
+++ src/htmlengine-edit-selection-updater.c	(working copy)
@@ -72,7 +72,7 @@ html_engine_edit_selection_updater_destr
 	g_return_if_fail (updater != NULL);
 
 	if (updater->idle_id != 0)
-		gtk_idle_remove (updater->idle_id);
+		g_source_remove (updater->idle_id);
 
 	g_free (updater);
 }
@@ -114,7 +114,7 @@ html_engine_edit_selection_updater_sched
 	if (updater->idle_id != 0)
 		return;
 
-	updater->idle_id = gtk_idle_add (updater_idle_callback, updater);
+	updater->idle_id = g_idle_add (updater_idle_callback, updater);
 }
 
 /**
@@ -129,7 +129,7 @@ html_engine_edit_selection_updater_reset
 	g_return_if_fail (updater != NULL);
 
 	if (updater->idle_id != 0) {
-		gtk_idle_remove (updater->idle_id);
+		g_source_remove (updater->idle_id);
 		updater->idle_id = 0;
 	}
 }
@@ -145,7 +145,7 @@ html_engine_edit_selection_updater_updat
 {
 	/* remove scheduled idle cb */
 	if (updater->idle_id != 0) {
-		gtk_idle_remove (updater->idle_id);
+		g_source_remove (updater->idle_id);
 		updater->idle_id = 0;
 	}
 
@@ -158,7 +158,7 @@ html_engine_edit_selection_updater_do_id
 {
 	/* remove scheduled idle cb */
 	if (updater->idle_id != 0) {
-		gtk_idle_remove (updater->idle_id);
+		g_source_remove (updater->idle_id);
 		updater->idle_id = 0;
 
 		/* run it now */
Index: src/htmlembedded.c
===================================================================
--- src/htmlembedded.c	(revision 8346)
+++ src/htmlembedded.c	(working copy)
@@ -119,7 +119,7 @@ destroy (HTMLObject *o)
 			g_assert (element->widget->parent == element->parent);
 			gtk_container_remove (GTK_CONTAINER (element->parent), element->widget);
 		} else {
-		       	gtk_object_sink (GTK_OBJECT (element->widget));
+			g_object_ref_sink (element->widget);
 		}
 	}
 
Index: src/htmlengine-edit-cursor.c
===================================================================
--- src/htmlengine-edit-cursor.c	(revision 8346)
+++ src/htmlengine-edit-cursor.c	(working copy)
@@ -364,7 +364,7 @@ html_engine_setup_blinking_cursor (HTMLE
 	engine->blinking_status = FALSE;
 
 	blink_timeout_cb (engine);
-	engine->blinking_timer_id = gtk_timeout_add (BLINK_TIMEOUT, blink_timeout_cb, engine);
+	engine->blinking_timer_id = g_timeout_add (BLINK_TIMEOUT, blink_timeout_cb, engine);
 }
 
 void
@@ -379,7 +379,7 @@ html_engine_stop_blinking_cursor (HTMLEn
 		engine->blinking_status = FALSE;
 	}
 
-	gtk_timeout_remove (engine->blinking_timer_id);
+	g_source_remove (engine->blinking_timer_id);
 	engine->blinking_timer_id = 0;
 }
 
@@ -395,6 +395,6 @@ html_engine_reset_blinking_cursor (HTMLE
 
 	html_engine_show_cursor (engine);
 	engine->blinking_status = TRUE;
-	gtk_timeout_remove (engine->blinking_timer_id);
-	engine->blinking_timer_id = gtk_timeout_add (BLINK_TIMEOUT, blink_timeout_cb, engine);
+	g_source_remove (engine->blinking_timer_id);
+	engine->blinking_timer_id = g_timeout_add (BLINK_TIMEOUT, blink_timeout_cb, engine);
 }
Index: src/htmlobject.c
===================================================================
--- src/htmlobject.c	(revision 8346)
+++ src/htmlobject.c	(working copy)
@@ -1676,7 +1676,7 @@ move_object_downtree_cursor (HTMLObject 
 			if (html_object_accepts_cursor (obj))
 				break;
 			last_obj = obj;
-			if (obj = move_object_downtree_cursor (obj, down_fn, next_fn))
+			if ((obj = move_object_downtree_cursor (obj, down_fn, next_fn)))
 				break;
 			obj = last_obj;
 		}
Index: src/htmlengine-save.c
===================================================================
--- src/htmlengine-save.c	(revision 8346)
+++ src/htmlengine-save.c	(working copy)
@@ -123,7 +123,7 @@ html_encode_entities (const gchar *input
 	if (encoded_len_return)
 		*encoded_len_return = out - buffer;
 
-	return buffer;
+	return (gchar *) buffer;
 }
 
 gboolean
@@ -131,7 +131,7 @@ html_engine_save_encode (HTMLEngineSaveS
 			 const gchar *buffer,
 			 guint length)
 {
-	guchar *encoded_buffer;
+	gchar *encoded_buffer;
 	guint encoded_length;
 	gboolean success;
 
@@ -141,7 +141,7 @@ html_engine_save_encode (HTMLEngineSaveS
 	if (length == 0)
 		return TRUE;
 
-	encoded_buffer = html_encode_entities ((const guchar *) buffer, length, &encoded_length);
+	encoded_buffer = html_encode_entities (buffer, length, &encoded_length);
 	success = state->receiver (state->engine, encoded_buffer, encoded_length, state->user_data);
 
 	g_free (encoded_buffer);
@@ -412,7 +412,7 @@ html_engine_save_buffer_peek_text (HTMLE
 	g_return_val_if_fail (state != NULL, NULL);
 	string = (GString *)state->user_data;
 	
-	return string->str;
+	return (guchar *) string->str;
 }
 
 int
Index: src/htmlengine-edit-text.c
===================================================================
--- src/htmlengine-edit-text.c	(revision 8346)
+++ src/htmlengine-edit-text.c	(working copy)
@@ -54,7 +54,7 @@ upper_lower (HTMLObject *obj, HTMLEngine
 {
 	if (html_object_is_text (obj)) {
 		gboolean up = GPOINTER_TO_INT (data);
-		guchar *old_text;
+		gchar *old_text;
 
 		old_text = HTML_TEXT (obj)->text;
 		HTML_TEXT (obj)->text = up ? g_utf8_strup (old_text, -1) : g_utf8_strdown (old_text, -1);
Index: src/testgtkhtml.c
===================================================================
--- src/testgtkhtml.c	(revision 8346)
+++ src/testgtkhtml.c	(working copy)
@@ -196,6 +196,7 @@ create_toolbars (GtkWidget *app)
 	GtkWidget *hbox;
 	GtkWidget *frame;
 	GtkWidget *toolbar;
+	GtkToolItem *item;
 	/* char *imgloc; */
 
 	dock = bonobo_dock_item_new ("testgtkhtml-toolbar1",
@@ -208,41 +209,39 @@ create_toolbars (GtkWidget *app)
 	gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
 	gtk_box_pack_start (GTK_BOX (hbox), toolbar, FALSE, FALSE, 0);
 
-	toolbar_back = gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
-						NULL,
-						"Move back",
-						"Back",
-						gtk_image_new_from_stock ("gtk-go-back", GTK_ICON_SIZE_LARGE_TOOLBAR),
-						GTK_SIGNAL_FUNC (back_cb), NULL);
-	gtk_widget_set_sensitive(toolbar_back, FALSE);
-	toolbar_forward = gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
-						   NULL,
-						   "Move forward",
-						   "Forward",
-						   gtk_image_new_from_stock ("gtk-go-forward", GTK_ICON_SIZE_LARGE_TOOLBAR),
-						   GTK_SIGNAL_FUNC (forward_cb), NULL);
-	gtk_widget_set_sensitive(toolbar_forward, FALSE);
-	gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-	gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
-				 NULL,
-				 "Stop loading",
-				 "Stop",
-				 gtk_image_new_from_stock ("gtk-stop", GTK_ICON_SIZE_LARGE_TOOLBAR),
-				 GTK_SIGNAL_FUNC (stop_cb),
-				 NULL);
-	gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
-				 NULL,
-				 "Reload page",
-				 "Reload",
-				 gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_LARGE_TOOLBAR),
-				 GTK_SIGNAL_FUNC (reload_cb), NULL);
-	gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
-				 NULL,
-				 "Home page",
-				 "Home",
-				 gtk_image_new_from_stock ("gtk-home", GTK_ICON_SIZE_LARGE_TOOLBAR),
-				 GTK_SIGNAL_FUNC (home_cb), NULL);
-	gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
+	item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK);
+	gtk_tool_item_set_tooltip (item, NULL, "Move back", "Back");
+	g_signal_connect (item, "clicked", G_CALLBACK (back_cb), NULL);
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+	gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE);
+	toolbar_back = GTK_WIDGET (item);
+
+	item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD);
+	gtk_tool_item_set_tooltip (item, NULL, "Move forward", "Forward");
+	g_signal_connect (item, "clicked", G_CALLBACK (forward_cb), NULL);
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+	gtk_widget_set_sensitive (GTK_WIDGET (item), FALSE);
+	toolbar_forward = GTK_WIDGET (item);
+
+	item = gtk_separator_tool_item_new ();
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+
+	item = gtk_tool_button_new_from_stock (GTK_STOCK_STOP);
+	gtk_tool_item_set_tooltip (item, NULL, "Stop loading", "Stop");
+	g_signal_connect (item, "clicked", G_CALLBACK (stop_cb), NULL);
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+
+	item = gtk_tool_button_new_from_stock (GTK_STOCK_REFRESH);
+	gtk_tool_item_set_tooltip (item, NULL, "Reload page", "Reload");
+	g_signal_connect (item, "clicked", G_CALLBACK (reload_cb), NULL);
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+
+	item = gtk_tool_button_new_from_stock (GTK_STOCK_HOME);
+	gtk_tool_item_set_tooltip (item, NULL, "Home page", "Home");
+	g_signal_connect (item, "clicked", G_CALLBACK (home_cb), NULL);
+
+	item = gtk_separator_tool_item_new ();
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
 
 	/* animator = gnome_animator_new_with_size (32, 32);
 
@@ -301,7 +300,7 @@ print_footer (GtkHTML *html, GnomePrintC
 		gnome_print_setrgbcolor (context, .0, .0, .0);
 		gnome_print_moveto      (context, x + (width - tw)/2, y - gnome_font_get_ascender (font));
 		gnome_print_setfont     (context, font);
-		gnome_print_show        (context, text);
+		gnome_print_show        (context, (guchar *) text);
 	}
 
 	g_free (text);
@@ -321,7 +320,7 @@ print_preview_cb (GtkWidget *widget,
 	gtk_html_print_set_master (html, print_master);
 
 	print_context = gnome_print_job_get_context (print_master);
-	font = gnome_font_find_closest ("Helvetica", 12);
+	font = gnome_font_find_closest ((guchar *) "Helvetica", 12);
 
 	page_num = 1;
 	pages = gtk_html_print_get_pages_num (html, print_context,
@@ -333,7 +332,7 @@ print_preview_cb (GtkWidget *widget,
 		g_object_unref (font);
 	
 	gnome_print_job_close (print_master);
-	preview = gnome_print_job_preview_new (print_master, "Print Preview");
+	preview = gnome_print_job_preview_new (print_master, (guchar *) "Print Preview");
 	gtk_widget_show (preview);
 
 	g_object_unref (print_master);
@@ -567,7 +566,7 @@ on_redirect (GtkHTML *html, const gchar 
 
 		redirect_url = g_strdup(url);
 		
-		redirect_timerId = gtk_timeout_add (delay * 1000,(GtkFunction) redirect_timer_event, NULL);
+		redirect_timerId = g_timeout_add (delay * 1000,(GtkFunction) redirect_timer_event, NULL);
 	}
 }
 
@@ -636,7 +635,7 @@ object_requested_cmd (GtkHTML *html, Gtk
 		return FALSE;
 
 	gtk_widget_ref (GTK_WIDGET (eb));
-	gtk_timeout_add(rand() % 5000 + 1000, (GtkFunction) object_timeout, eb);
+	g_timeout_add(rand() % 5000 + 1000, (GtkFunction) object_timeout, eb);
 	/* object_timeout (eb); */
 
 	return TRUE;
@@ -835,7 +834,7 @@ goto_url(const char *url, int back_or_fo
 
 	/* Remove any pending redirection */
 	if(redirect_timerId) {
-		gtk_timeout_remove(redirect_timerId);
+		g_source_remove(redirect_timerId);
 
 		redirect_timerId = 0;
 	}
Index: src/htmlclueflow.c
===================================================================
--- src/htmlclueflow.c	(revision 8346)
+++ src/htmlclueflow.c	(working copy)
@@ -1996,14 +1996,14 @@ save_plain (HTMLObject *self,
 			g_string_append (out, "\n");
 		} else {
 			PangoAttrList *attrs = pango_attr_list_new ();
-			gint bytes = html_engine_save_buffer_peek_text_bytes (buffer_state), slen = g_utf8_strlen (s, -1), i, clen, n_items;
+			gint bytes = html_engine_save_buffer_peek_text_bytes (buffer_state), slen = g_utf8_strlen ((gchar *) s, -1), i, clen, n_items;
 			GList *items_list, *cur;
 			PangoContext *pc = state->engine->painter->pango_context;
 			PangoLogAttr *lattrs;
 			PangoItem **items;
 			gint len, width, skip;
 
-			items_list = pango_itemize (pc, s, 0, bytes, attrs, NULL);
+			items_list = pango_itemize (pc, (gchar *) s, 0, bytes, attrs, NULL);
 			lattrs = g_new (PangoLogAttr, slen + 1);
 			n_items = g_list_length (items_list);
 			items = g_new (PangoItem *, n_items);
@@ -2028,10 +2028,10 @@ save_plain (HTMLObject *self,
 						break;
 				}
 
-				pango_break (s + tmp_item.offset, tmp_item.length, &tmp_item.analysis, lattrs + start_offset, tmp_item.num_chars + 1);
+				pango_break ((gchar *) s + tmp_item.offset, tmp_item.length, &tmp_item.analysis, lattrs + start_offset, tmp_item.num_chars + 1);
 			}
 
-			html_text_remove_unwanted_line_breaks (s, slen, lattrs);
+			html_text_remove_unwanted_line_breaks ((gchar *) s, slen, lattrs);
 
 			g_list_free (items_list);
 			for (i = 0; i < n_items; i ++)
@@ -2041,9 +2041,9 @@ save_plain (HTMLObject *self,
 
 			clen = 0;
 			while (*s) {
-				len = strcspn (s, "\n");
-				len = g_utf8_strlen (s, len);
-				width = utf8_width (s, len);
+				len = strcspn ((gchar *) s, "\n");
+				len = g_utf8_strlen ((gchar *) s, len);
+				width = utf8_width ((gchar *) s, len);
 				skip = 0;
 			
 				if ((flow->style != HTML_CLUEFLOW_STYLE_PRE) 
@@ -2053,7 +2053,7 @@ save_plain (HTMLObject *self,
 						gint wmax;
 						gint wi, wl;
 
-						wmax = clen + utf8_length_in_width (s, len, max_width);
+						wmax = clen + utf8_length_in_width ((gchar *) s, len, max_width);
 						wl = wmax;
 
 						if (lattrs [wl].is_white) {
@@ -2080,7 +2080,7 @@ save_plain (HTMLObject *self,
 							while (wi > clen && lattrs [wi - 1].is_white)
 								wi --;
 							len = wi - clen;
-							width = utf8_width (s, len);
+							width = utf8_width ((gchar *) s, len);
 							skip = wl - wi;
 						}
 					}
@@ -2114,10 +2114,10 @@ save_plain (HTMLObject *self,
 					align_pad--;
 				}
 
-				bytes = ((guchar *) g_utf8_offset_to_pointer (s, len)) - s;
+				bytes = ((guchar *) g_utf8_offset_to_pointer ((gchar *) s, len)) - s;
 				html_engine_save_string_append_nonbsp (out, s, bytes);
 				s += bytes;
-				s = g_utf8_offset_to_pointer (s, skip);
+				s = (guchar *) g_utf8_offset_to_pointer ((gchar *) s, skip);
 				clen += len + skip;
 
 				if (*s == '\n') {
@@ -2201,15 +2201,15 @@ search_set_info (HTMLObject *cur, HTMLSe
 			cur_bytes = HTML_TEXT (cur)->text_bytes;
 			if (text_bytes + cur_bytes > index) {
 				if (!info->found) {
-					info->start_pos = g_utf8_pointer_to_offset (text + text_bytes,
-										    text + index);
+					info->start_pos = g_utf8_pointer_to_offset ((gchar *) text + text_bytes,
+										    (gchar *) text + index);
 				}
 				info->found = g_list_append (info->found, cur);
 			}
 			text_bytes += cur_bytes;
 			if (text_bytes >= index + info->found_bytes) {
-				info->stop_pos = info->start_pos + g_utf8_pointer_to_offset (text + index,
-											     text + index + info->found_bytes);
+				info->stop_pos = info->start_pos + g_utf8_pointer_to_offset ((gchar *) text + index,
+											     (gchar *) text + index + info->found_bytes);
 				info->last     = HTML_OBJECT (cur);
 				return;
 			}
@@ -2250,7 +2250,7 @@ search_text (HTMLObject **beg, HTMLSearc
 	}
 
 	if (text_bytes > 0) {
-		par = g_new (gchar, text_bytes + 1);
+		par = (guchar *) g_new (gchar, text_bytes + 1);
 		par [text_bytes] = 0;
 
 		pp = (info->forward) ? par : par + text_bytes;
@@ -2263,7 +2263,7 @@ search_text (HTMLObject **beg, HTMLSearc
 				if (!info->forward) {
 					pp -= HTML_TEXT (cur)->text_bytes;
 				}
-				strncpy (pp, HTML_TEXT (cur)->text, HTML_TEXT (cur)->text_bytes);
+				strncpy ((gchar *) pp, HTML_TEXT (cur)->text, HTML_TEXT (cur)->text_bytes);
 				if (info->forward) {
 					pp += HTML_TEXT (cur)->text_bytes;
 				}
@@ -2277,9 +2277,9 @@ search_text (HTMLObject **beg, HTMLSearc
 		eq_bytes = 0;
 		if (info->found) {
                 	if (info->start_pos > 0)
-	                        index = ((guchar *)g_utf8_offset_to_pointer (par, info->start_pos + ((info->forward) ? 1 : -1))) - par;
+	                        index = ((guchar *)g_utf8_offset_to_pointer ((gchar *) par, info->start_pos + ((info->forward) ? 1 : -1))) - par;
 			else
-				index = ((guchar *)g_utf8_offset_to_pointer (par, info->start_pos + ((info->forward) ? 1 : 0))) - par;
+				index = ((guchar *)g_utf8_offset_to_pointer ((gchar *) par, info->start_pos + ((info->forward) ? 1 : 0))) - par;
 		} else {
 			index = (info->forward) ? 0 : text_bytes - 1;
 		}
@@ -2309,7 +2309,7 @@ search_text (HTMLObject **beg, HTMLSearc
 				while ((info->forward && index < text_bytes)
 				       || (!info->forward && index >= 0)) {
 					rv = regexec (info->reb,
-						      par + index,
+						      (gchar *) par + index,
 						      1, &match, 0);
 					if (rv == 0) {
 						search_set_info (head, info, par,
@@ -2319,7 +2319,7 @@ search_text (HTMLObject **beg, HTMLSearc
 					}
 					index += (info->forward)
 						? (((guchar *) g_utf8_next_char (par + index)) - par - index)
-						: (((guchar *) g_utf8_prev_char (par + index)) - par - index);
+						: (((guchar *) g_utf8_prev_char ((gchar *) par + index)) - par - index);
 				}
 #else
 				rv = re_search (info->reb, par, text_bytes, index,
@@ -2361,7 +2361,7 @@ search_text (HTMLObject **beg, HTMLSearc
 					}
 					index += (info->forward)
 						? (((guchar *) g_utf8_next_char (par + index)) - par - index)
-						: (((guchar *) g_utf8_prev_char (par + index)) - par - index);
+						: (((guchar *) g_utf8_prev_char ((gchar *) par + index)) - par - index);
 				}
 			}
 		}
Index: src/htmlprinter.c
===================================================================
--- src/htmlprinter.c	(revision 8346)
+++ src/htmlprinter.c	(working copy)
@@ -207,7 +207,7 @@ begin (HTMLPainter *painter,
 	pc      = printer->context;
 	g_return_if_fail (pc);
 
-	gnome_print_beginpage (pc, "page");
+	gnome_print_beginpage (pc, (guchar *) "page");
 	gnome_print_gsave (pc);
 
 	html_printer_coordinates_to_gnome_print (printer, x1, y1, &printer_x1, &printer_y1);
Index: src/gtkhtml.c
===================================================================
--- src/gtkhtml.c	(revision 8346)
+++ src/gtkhtml.c	(working copy)
@@ -169,7 +169,7 @@ static void     cursor_move            (
 static gboolean command                (GtkHTML *html, GtkHTMLCommandType com_type);
 static gint     mouse_change_pos       (GtkWidget *widget, GdkWindow *window, gint x, gint y, gint state);
 static void     add_bindings           (GtkHTMLClass *klass);
-static gchar *  get_value_nick         (GtkHTMLCommandType com_type);					
+static const gchar * get_value_nick    (GtkHTMLCommandType com_type);					
 static void	gtk_html_adjust_cursor_position (GtkHTML *html);
 
 
@@ -409,7 +409,7 @@ static void
 queue_draw (GtkHTML *html)
 {
 	if (html->priv->idle_handler_id == 0)
-		html->priv->idle_handler_id = gtk_idle_add (idle_handler, html);
+		html->priv->idle_handler_id = g_idle_add (idle_handler, html);
 }
 
 
@@ -685,7 +685,7 @@ setup_scroll_timeout (GtkHTML *html)
 	if (html->priv->scroll_timeout_id != 0)
 		return;
 
-	html->priv->scroll_timeout_id = gtk_timeout_add (SCROLL_TIMEOUT_INTERVAL,
+	html->priv->scroll_timeout_id = g_timeout_add (SCROLL_TIMEOUT_INTERVAL,
 						   scroll_timeout_cb, html);
 
 	GDK_THREADS_LEAVE();
@@ -699,7 +699,7 @@ remove_scroll_timeout (GtkHTML *html)
 	if (html->priv->scroll_timeout_id == 0)
 		return;
 
-	gtk_timeout_remove (html->priv->scroll_timeout_id);
+	g_source_remove (html->priv->scroll_timeout_id);
 	html->priv->scroll_timeout_id = 0;
 }
 
@@ -730,12 +730,12 @@ destroy (GtkObject *object)
 
 	if (html->priv) {
 		if (html->priv->idle_handler_id != 0) {
-			gtk_idle_remove (html->priv->idle_handler_id);
+			g_source_remove (html->priv->idle_handler_id);
 			html->priv->idle_handler_id = 0;
 		}
 
 		if (html->priv->scroll_timeout_id != 0) {
-			gtk_timeout_remove (html->priv->scroll_timeout_id);
+			g_source_remove (html->priv->scroll_timeout_id);
 			html->priv->scroll_timeout_id = 0;
 		}
 
@@ -1091,15 +1091,13 @@ realize (GtkWidget *widget)
 	if (layout->hadjustment == NULL) {
 		layout->hadjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
 
-		g_object_ref (layout->hadjustment);
-		gtk_object_sink (GTK_OBJECT (layout->hadjustment));
+		g_object_ref_sink (layout->hadjustment);
 	}
 
 	if (layout->vadjustment == NULL) {
 		layout->vadjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
 		
-		g_object_ref (layout->vadjustment);
-		gtk_object_sink (GTK_OBJECT (layout->vadjustment));	
+		g_object_ref_sink (layout->vadjustment);
 	}
 
 	gtk_html_drag_dest_set (html);
@@ -1337,7 +1335,7 @@ mouse_change_pos (GtkWidget *widget, Gdk
 
 	html   = GTK_HTML (widget);
 	engine = html->engine;
-	obj    = html_engine_get_object_at (engine, x, y, &offset, FALSE);
+	obj    = html_engine_get_object_at (engine, x, y, (guint *) &offset, FALSE);
 
 	if ((html->in_selection || html->in_selection_drag) && html->allow_selection) {
 		gboolean need_scroll;
@@ -1812,7 +1810,7 @@ button_press_event (GtkWidget *widget,
 				gchar *url = NULL;
 
 				orig_e = GTK_HTML (orig_widget)->engine;
-				obj = html_engine_get_object_at (engine, x, y, &offset, FALSE);
+				obj = html_engine_get_object_at (engine, x, y, (guint *) &offset, FALSE);
 				if (obj && ((HTML_IS_IMAGE (obj) && HTML_IMAGE (obj)->url && *HTML_IMAGE (obj)->url)
 					    || (HTML_IS_TEXT (obj) && (url = html_object_get_complete_url (obj, offset))))) {
 					g_free (url);
@@ -2107,7 +2105,7 @@ selection_get (GtkWidget        *widget,
 		if (selection_string)
 			gtk_selection_data_set (selection_data,
 						gdk_atom_intern ("text/html", FALSE), 8,
-						selection_string,
+						(guchar *) selection_string,
 						len);
 
 		g_free (html_string);
@@ -2152,7 +2150,7 @@ ucs2_to_utf8_with_bom_check (guchar  *da
 		break;
 	}
 
-	utf8_ret = g_convert (data, len, "UTF-8", fromcode, &read_len, &written_len, &error);
+	utf8_ret = g_convert ((gchar *) data, len, "UTF-8", fromcode, &read_len, &written_len, &error);
 
 	if (error) {
 		g_warning ("g_convert error: %s\n", error->message);
@@ -2243,7 +2241,7 @@ selection_received (GtkWidget *widget,
 			 */
 
 			if (len > 1 && 
-			    !g_utf8_validate (data, len - 1, NULL)) {
+			    !g_utf8_validate ((gchar *) data, len - 1, NULL)) {
 				utf8 = ucs2_to_utf8_with_bom_check (data, len);
 				d_s (g_warning ("UCS-2 selection = %s", utf8);)
 			} else if (len > 0) {
@@ -2271,7 +2269,7 @@ selection_received (GtkWidget *widget,
 				g_warning ("selection was empty");
 
 			g_free (utf8);			
-		} else if ((utf8 = gtk_selection_data_get_text (selection_data))) {
+		} else if ((utf8 = (gchar *) gtk_selection_data_get_text (selection_data))) {
 			if (as_cite) {
 				char *encoded;
 				
@@ -2333,7 +2331,8 @@ selection_clear_event (GtkWidget *widget
 {
 	GtkHTML *html;
 
-	if (! gtk_selection_clear (widget, event))
+	if (!GTK_WIDGET_CLASS (parent_class)->
+			selection_clear_event (widget, event))
 		return FALSE;
 
 	html = GTK_HTML (widget);
@@ -2585,13 +2584,13 @@ drag_data_get (GtkWidget *widget, GdkDra
 
 					ucs2 = g_convert (utf8, strlen (utf8), "UCS-2", "UTF-8", NULL, &written_len, NULL);
 					gtk_selection_data_set (selection_data, selection_data->target, 8,
-								ucs2, written_len);
+								(guchar *) ucs2, written_len);
 					g_free (utf8);
 					g_free (complete_url);
 					GTK_HTML (widget)->priv->dnd_url = ucs2;
 				} else {
 					gtk_selection_data_set (selection_data, selection_data->target, 8,
-								complete_url, strlen (complete_url));
+								(guchar *) complete_url, strlen (complete_url));
 				        /* printf ("complete URL %s\n", complete_url); */
 					GTK_HTML (widget)->priv->dnd_url = complete_url;
 				}
@@ -2622,14 +2621,14 @@ next_uri (guchar **uri_list, gint *len, 
 		(*list_len) --;
 	}
 
-	uri = g_strndup (begin, *len);
+	uri = (guchar *) g_strndup ((gchar *) begin, *len);
 
 	while ((!**uri_list || **uri_list == '\n' || **uri_list == '\r') && *list_len) {
 		(*uri_list) ++;
 		(*list_len) --;
 	}	
 
-	return uri;
+	return (gchar *) uri;
 }
 
 static HTMLObject *
@@ -5545,7 +5544,7 @@ gtk_html_set_editor_api (GtkHTML *html, 
 	gtk_html_api_set_language (html);
 }
 
-static gchar *
+static const gchar *
 get_value_nick (GtkHTMLCommandType com_type)
 {
 	GEnumValue *val;
@@ -5646,7 +5645,7 @@ reparent_embedded (HTMLObject *o, HTMLEn
 		    GTK_HTML (eo->widget->parent)->iframe_parent == NULL) {
 			g_object_ref (eo->widget);
 			gtk_container_remove (GTK_CONTAINER (eo->widget->parent), eo->widget);
-			GTK_OBJECT_FLAGS (eo->widget) = GTK_FLOATING;
+			g_object_force_floating (G_OBJECT (eo->widget));
 		}
 		eo->parent = data;
 	}
@@ -5918,7 +5917,7 @@ gtk_html_get_url_at (GtkHTML *html, int 
 
 	g_return_val_if_fail (GTK_IS_HTML (html), NULL);
 
-	obj = html_engine_get_object_at (html->engine, x, y, &offset, FALSE);
+	obj = html_engine_get_object_at (html->engine, x, y, (guint *) &offset, FALSE);
 
 	if (obj)
 		return gtk_html_get_url_object_relative (html, obj, html_object_get_url (obj, offset));
Index: a11y/hyperlink.c
===================================================================
--- a11y/hyperlink.c	(revision 8346)
+++ a11y/hyperlink.c	(working copy)
@@ -92,9 +92,9 @@ html_a11y_hyper_link_finalize (GObject *
 {
 	HTMLA11YHyperLink *hl = HTML_A11Y_HYPER_LINK (obj);
 
-	if (hl->a11y)
-		g_object_remove_weak_pointer (G_OBJECT (hl->a11y),
-					      (gpointer *) &hl->a11y);
+	if (hl->a11y.object)
+		g_object_remove_weak_pointer (G_OBJECT (hl->a11y.object),
+					      &hl->a11y.weakref);
 
 	G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
@@ -104,7 +104,7 @@ static gint
 html_a11y_hyper_link_get_start_index (AtkHyperlink *link)
 {
 	HTMLA11YHyperLink *hl = HTML_A11Y_HYPER_LINK (link);
-	HTMLText *text = HTML_TEXT (HTML_A11Y_HTML (hl->a11y));
+	HTMLText *text = HTML_TEXT (HTML_A11Y_HTML (hl->a11y.object));
 	Link *a = (Link *) g_slist_nth_data (text->links, hl->num);
 	return a ? a->start_offset : -1;
 }
@@ -114,7 +114,7 @@ static gint
 html_a11y_hyper_link_get_end_index (AtkHyperlink *link)
 {
 	HTMLA11YHyperLink *hl = HTML_A11Y_HYPER_LINK (link);
-	Link *a = (Link *) g_slist_nth_data (HTML_TEXT (HTML_A11Y_HTML (hl->a11y))->links, hl->num);
+	Link *a = (Link *) g_slist_nth_data (HTML_TEXT (HTML_A11Y_HTML (hl->a11y.object))->links, hl->num);
 	return a ? a->end_offset : -1;
 }
 
@@ -145,10 +145,10 @@ html_a11y_hyper_link_new (HTMLA11Y *a11y
 
 	hl = HTML_A11Y_HYPER_LINK (g_object_new (G_TYPE_HTML_A11Y_HYPER_LINK, NULL));
 
-	hl->a11y = a11y;
+	hl->a11y.object = a11y;
 	hl->num = link_index;
 	hl->offset = ((Link *) g_slist_nth_data (HTML_TEXT (HTML_A11Y_HTML (a11y))->links, link_index))->start_offset;
-	g_object_add_weak_pointer (G_OBJECT (hl->a11y), (gpointer *) &hl->a11y);
+	g_object_add_weak_pointer (G_OBJECT (hl->a11y.object), &hl->a11y.weakref);
 
 	return ATK_HYPERLINK (hl);
 }
@@ -165,13 +165,13 @@ html_a11y_hyper_link_do_action (AtkActio
 
 	hl = HTML_A11Y_HYPER_LINK (action);
 
-	if (i == 0 && hl->a11y) {
-		HTMLText *text = HTML_TEXT (HTML_A11Y_HTML (hl->a11y));
+	if (i == 0 && hl->a11y.object) {
+		HTMLText *text = HTML_TEXT (HTML_A11Y_HTML (hl->a11y.object));
 		gchar *url = html_object_get_complete_url (HTML_OBJECT (text), hl->offset);
 
 		if (url && *url) {
 			GObject *gtkhtml = GTK_HTML_A11Y_GTKHTML_POINTER
-				(html_a11y_get_gtkhtml_parent (HTML_A11Y (hl->a11y)));
+				(html_a11y_get_gtkhtml_parent (HTML_A11Y (hl->a11y.object)));
 
 			g_signal_emit_by_name (gtkhtml, "link_clicked", url);
 			result = TRUE;
Index: a11y/hyperlink.h
===================================================================
--- a11y/hyperlink.h	(revision 8346)
+++ a11y/hyperlink.h	(working copy)
@@ -43,7 +43,11 @@ typedef struct _HTMLA11YHyperLinkClass H
 struct _HTMLA11YHyperLink {
 	AtkHyperlink atk_hyper_link;
 
-	HTMLA11Y *a11y;
+	/* use the union for valid type-punning */
+	union {
+		HTMLA11Y *object;
+		gpointer weakref;
+	} a11y;
 	gint num;
 	gint offset;
 	gchar *description;
Index: a11y/text.c
===================================================================
--- a11y/text.c	(revision 8346)
+++ a11y/text.c	(working copy)
@@ -946,7 +946,7 @@ html_a11y_text_get_offset_at_point (AtkT
 	x -= html_x;
 	y -= html_y;
 
-	return_obj = html_engine_get_object_at (top_e, x, y, &offset, FALSE);
+	return_obj = html_engine_get_object_at (top_e, x, y, (guint *) &offset, FALSE);
 		
 	if (obj == return_obj)
 		return offset;
