Index: libedataserverui/e-categories-dialog.glade
===================================================================
--- libedataserverui/e-categories-dialog.glade	(revision 9789)
+++ libedataserverui/e-categories-dialog.glade	(working copy)
@@ -435,13 +435,11 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkFileChooserButton" id="category-icon">
+	    <widget class="Custom" id="category-icon">
 	      <property name="visible">True</property>
-	      <property name="title" translatable="yes">Category Icon</property>
-	      <property name="action">GTK_FILE_CHOOSER_ACTION_OPEN</property>
-	      <property name="local_only">True</property>
-	      <property name="show_hidden">False</property>
-	      <property name="width_chars">-1</property>
+	      <property name="creation_function">create_category_icon_chooser_widget</property>
+	      <property name="int1">0</property>
+	      <property name="int2">0</property>
 	    </widget>
 	    <packing>
 	      <property name="left_attach">1</property>
Index: libedataserverui/e-categories-dialog.c
===================================================================
--- libedataserverui/e-categories-dialog.c	(revision 9789)
+++ libedataserverui/e-categories-dialog.c	(working copy)
@@ -570,3 +570,37 @@ e_categories_dialog_set_categories (ECat
 		} while (gtk_tree_model_iter_next (model, &iter));
 	}
 }
+
+GtkWidget *create_category_icon_chooser_widget (void);
+
+static void
+file_chooser_response (GtkDialog *dialog, gint response_id, GtkFileChooser *button)
+{
+	if (response_id == GTK_RESPONSE_NO) {
+		/* !!!TODO!!! do something to have (None) in the chooser button */
+	}
+}
+
+GtkWidget *
+create_category_icon_chooser_widget (void)
+{
+	GtkWidget *dialog, *button;
+
+	dialog = gtk_file_chooser_dialog_new ( _("Choose an icon"),
+		NULL,
+		GTK_FILE_CHOOSER_ACTION_OPEN,
+		GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+		_("_No Image"), GTK_RESPONSE_NO,
+		GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+		NULL);
+
+	button = gtk_file_chooser_button_new_with_dialog (dialog);
+
+	gtk_file_chooser_set_action (GTK_FILE_CHOOSER (button), GTK_FILE_CHOOSER_ACTION_OPEN);
+	gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (button), TRUE);
+
+	g_signal_connect (dialog, "response", (GCallback) file_chooser_response, button);
+	gtk_widget_show (button);
+
+	return button;
+}
