Index: plugins/cvs-plugin/anjuta-cvs-plugin.glade
===================================================================
--- plugins/cvs-plugin/anjuta-cvs-plugin.glade	(revision 4941)
+++ plugins/cvs-plugin/anjuta-cvs-plugin.glade	(working copy)
@@ -2,7 +2,6 @@
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
 <!--*- mode: xml -*-->
 <glade-interface>
-  <requires lib="gnome"/>
   <widget class="GtkWindow" id="preferences_cvs">
     <property name="visible">True</property>
     <property name="title" translatable="yes">CVS Preferences</property>
@@ -44,17 +43,8 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry1">
+              <widget class="GtkFileChooserButton" id="preferences_file:text:/usr/bin/cvs:0:cvs.path">
                 <property name="visible">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
-                  <widget class="GtkEntry" id="preferences_entry:text:/usr/bin/cvs:0:cvs.path">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
-                    <property name="text">/usr/bin/cvs</property>
-                  </widget>
-                </child>
               </widget>
               <packing>
                 <property name="left_attach">1</property>
@@ -162,18 +152,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="gnomefileentry">
+              <widget class="GtkHBox" id="hbox01">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_add_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -265,18 +267,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry2">
+              <widget class="GtkHBox" id="hbox02">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="width_request">260</property>
                   </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_remove_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -369,18 +384,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry3">
+              <widget class="GtkHBox" id="hbox03">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="width_request">260</property>
                   </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_commit_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -468,16 +496,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry2">
+                              <widget class="GtkEntry" id="cvs_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="cvs_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -588,18 +610,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry4">
+              <widget class="GtkHBox" id="hbox04">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_update_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -711,16 +745,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry5">
+                              <widget class="GtkEntry" id="cvs_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="cvs_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -841,18 +869,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry5">
+              <widget class="GtkHBox" id="hbox05">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_status_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -1004,18 +1044,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry6">
+              <widget class="GtkHBox" id="hbox06">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_diff_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -1094,16 +1146,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry4">
+                              <widget class="GtkEntry" id="cvs_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="cvs_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -1218,18 +1264,31 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry7">
+              <widget class="GtkHBox" id="hbox07">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="cvs_filename">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="invisible_char">&#x25CF;</property>
+                    <property name="width_request">260</property>
                   </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
                 </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_log_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="receives_default">True</property>
+                  </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
               </widget>
               <packing>
                 <property name="expand">False</property>
@@ -1461,19 +1520,9 @@
                       </packing>
                     </child>
                     <child>
-                      <widget class="GnomeFileEntry" id="fileentry8">
+                      <widget class="GtkFileChooserButton" id="cvs_rootdir">
                         <property name="visible">True</property>
-                        <property name="directory_entry">True</property>
-                        <property name="modal">True</property>
-                        <property name="use_filechooser">True</property>
-                        <property name="max_saved">10</property>
-                        <child internal-child="entry">
-                          <widget class="GtkEntry" id="cvs_rootdir">
-                            <property name="visible">True</property>
-                            <property name="can_focus">True</property>
-                            <property name="invisible_char">*</property>
-                          </widget>
-                        </child>
+                        <property name="action">select-folder</property>
                       </widget>
                       <packing>
                         <property name="left_attach">1</property>
Index: plugins/cvs-plugin/cvs-callbacks.c
===================================================================
--- plugins/cvs-plugin/cvs-callbacks.c	(revision 4941)
+++ plugins/cvs-plugin/cvs-callbacks.c	(working copy)
@@ -66,7 +66,6 @@
 		return FALSE;
 	}
 	return TRUE;
-	return FALSE;
 }
 
 static gboolean 
@@ -411,6 +410,7 @@
 void
 on_cvs_import_response(GtkDialog* dialog, gint response, CVSData* data)
 {
+	gchar* dirname = NULL;
 	if (is_busy(data->plugin, dialog))
 		return;
 	
@@ -426,7 +426,7 @@
 			GtkWidget* releasetag;
 			GtkWidget* logtext;
 			GtkWidget* typecombo;
-			GtkWidget* direntry;
+			GtkFileChooser* dir;
 			gchar* log;
 			
 			username = glade_xml_get_widget(data->gxml, "cvs_username");
@@ -445,8 +445,9 @@
 			if (!check_entry(dialog, releasetag, _("Release")))
 				break;
 			typecombo = glade_xml_get_widget(data->gxml, "cvs_server_type");
-			direntry = glade_xml_get_widget(data->gxml, "cvs_rootdir");
-			if (!check_entry(dialog, direntry, _("Directory")))
+			dir = GTK_FILE_CHOOSER(glade_xml_get_widget(data->gxml, "cvs_rootdir"));
+			dirname = gtk_file_chooser_get_filename (dir);
+			if (!dirname)
 				break;
 			
 			logtext = glade_xml_get_widget(data->gxml, "cvs_log");
@@ -465,7 +466,7 @@
 			}
 			
 			anjuta_cvs_import(ANJUTA_PLUGIN(data->plugin),
-				gtk_entry_get_text(GTK_ENTRY(direntry)),
+				dirname,
 				gtk_entry_get_text(GTK_ENTRY(cvsroot_entry)),
 				gtk_entry_get_text(GTK_ENTRY(module_entry)),
 				gtk_entry_get_text(GTK_ENTRY(vendortag)),
@@ -484,4 +485,5 @@
 			gtk_widget_destroy(GTK_WIDGET(dialog));
 			break;
 	}
+	g_free(dirname);
 }
Index: plugins/cvs-plugin/cvs-actions.c
===================================================================
--- plugins/cvs-plugin/cvs-actions.c	(revision 4941)
+++ plugins/cvs-plugin/cvs-actions.c	(working copy)
@@ -30,6 +30,14 @@
 #include <libanjuta/anjuta-utils.h>
 #include <libanjuta/anjuta-debug.h>
 
+#define BROWSE_BUTTON_ADD_DIALOG	"browse_button_add_dialog"
+#define BROWSE_BUTTON_REMOVE_DIALOG	"browse_button_remove_dialog"
+#define BROWSE_BUTTON_COMMIT_DIALOG	"browse_button_commit_dialog"
+#define BROWSE_BUTTON_UPDATE_DIALOG	"browse_button_update_dialog"
+#define BROWSE_BUTTON_DIFF_DIALOG	"browse_button_diff_dialog"
+#define BROWSE_BUTTON_STATUS_DIALOG	"browse_button_status_dialog"
+#define BROWSE_BUTTON_LOG_DIALOG	"browse_button_log_dialog"
+
 void cvs_add_dialog(GtkAction* action, CVSPlugin* plugin, gchar *filename);
 void cvs_remove_dialog(GtkAction* action, CVSPlugin* plugin, gchar *filename);
 void cvs_commit_dialog(GtkAction* action, CVSPlugin* plugin, gchar *filename);
@@ -97,11 +105,34 @@
 		gtk_widget_set_sensitive(GTK_WIDGET(fileentry), TRUE);	
 }
 
+static void
+on_browse_button_clicked(GtkButton *button, GtkEntry *entry)
+{
+	GtkWidget *dialog;
+	dialog = gtk_file_chooser_dialog_new("Open File",
+					      NULL,
+					      GTK_FILE_CHOOSER_ACTION_OPEN,
+					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+					      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+					      NULL);
+	if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT)
+	{
+		char *filename;
+		filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER (dialog));
+
+		gtk_entry_set_text(entry, filename);
+
+		g_free(filename);
+	}
+	gtk_widget_destroy(dialog);
+}
+
 void cvs_add_dialog(GtkAction* action, CVSPlugin* plugin, gchar *filename)
 {
 	GladeXML* gxml;
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
+	GtkWidget* button;
 	CVSData* data;
 	gxml = glade_xml_new(GLADE_FILE, "cvs_add", NULL);
 	
@@ -110,6 +141,10 @@
 	if (filename)
 		gtk_entry_set_text(GTK_ENTRY(fileentry), filename);
 	
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_ADD_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_add_response), data);
@@ -122,6 +157,7 @@
 	GladeXML* gxml;
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_remove", NULL);
@@ -131,6 +167,10 @@
 	if (filename)
 		gtk_entry_set_text(GTK_ENTRY(fileentry), filename);
 
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_REMOVE_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_remove_response), data);
@@ -145,6 +185,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_commit", NULL);
@@ -159,7 +200,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_COMMIT_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_commit_response), data);
@@ -174,6 +219,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_update", NULL);
@@ -188,7 +234,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_UPDATE_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_update_response), data);
@@ -204,6 +254,7 @@
 	GtkWidget* diff_type;
 	GtkWidget* unified_diff;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_diff", NULL);
@@ -224,7 +275,11 @@
 	gtk_combo_box_set_active(GTK_COMBO_BOX(diff_type), DIFF_PATCH);
 	g_signal_connect(G_OBJECT(diff_type), "changed", 
 		G_CALLBACK(on_diff_type_changed), unified_diff);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_DIFF_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_diff_response), data);
@@ -238,6 +293,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_status", NULL);
@@ -252,13 +308,16 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_STATUS_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_status_response), data);
 	
 	gtk_widget_show(dialog);	
-
 }
 
 void cvs_log_dialog (GtkAction* action, CVSPlugin* plugin, gchar *filename)
@@ -267,6 +326,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	CVSData* data;
 
 	gxml = glade_xml_new(GLADE_FILE, "cvs_logdialog", NULL);
@@ -281,7 +341,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_LOG_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_browse_button_clicked), fileentry);
+
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_cvs_log_response), data);
@@ -323,14 +387,14 @@
 {
 	GladeXML* gxml;
 	GtkWidget* dialog; 
-	GtkWidget* direntry;
+	GtkFileChooser* dir;
 	GtkWidget* typecombo;
 	CVSData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "cvs_import", NULL);
 	
 	dialog = glade_xml_get_widget(gxml, "cvs_import");
-	direntry = glade_xml_get_widget(gxml, "cvs_rootdir");
+	dir = GTK_FILE_CHOOSER (glade_xml_get_widget(gxml, "cvs_rootdir"));
 	typecombo = glade_xml_get_widget(gxml, "cvs_server_type");
 	
 	g_signal_connect (G_OBJECT(typecombo), "changed", 
@@ -338,7 +402,7 @@
 	gtk_combo_box_set_active(GTK_COMBO_BOX(typecombo), SERVER_LOCAL);
 	
 	if (plugin->project_root_dir)
-		gtk_entry_set_text(GTK_ENTRY(direntry), plugin->project_root_dir);
+		gtk_file_chooser_set_filename(dir, plugin->project_root_dir);
 	
 	data = cvs_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
Index: plugins/subversion/subversion-diff-dialog.c
===================================================================
--- plugins/subversion/subversion-diff-dialog.c	(revision 4941)
+++ plugins/subversion/subversion-diff-dialog.c	(working copy)
@@ -27,6 +27,8 @@
 
 #include "subversion-diff-dialog.h"
 
+#define BROWSE_BUTTON_DIFF_DIALOG "browse_button_diff_dialog"
+
 static void
 subversion_show_diff (const gchar *path, gboolean recursive, 
 					  gboolean save_files, Subversion *plugin)
@@ -141,6 +143,7 @@
 	GtkWidget *subversion_diff; 
 	GtkWidget *diff_path_entry;
 	GtkWidget *diff_whole_project_check;
+	GtkWidget *button;
 	SubversionData *data;
 	
 	gxml = glade_xml_new (GLADE_FILE, "subversion_diff", NULL);
@@ -161,8 +164,11 @@
 					 G_CALLBACK (on_whole_project_toggled), 
 					 plugin);
 	init_whole_project (plugin, diff_whole_project_check, !filename);
-	
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_DIFF_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_subversion_browse_button_clicked), diff_path_entry);
+
 	g_signal_connect (G_OBJECT (subversion_diff), "response", 
 					  G_CALLBACK (on_subversion_diff_response), 
 					  data);
Index: plugins/subversion/subversion-log-dialog.c
===================================================================
--- plugins/subversion/subversion-log-dialog.c	(revision 4941)
+++ plugins/subversion/subversion-log-dialog.c	(working copy)
@@ -24,6 +24,8 @@
 
 #include "subversion-log-dialog.h"
 
+#define BROWSE_BUTTON_LOG_DIALOG "browse_button_log_dialog"
+
 typedef struct
 {
 	glong revisions[2];
@@ -569,6 +571,7 @@
 	GtkWidget *log_diff_previous_button;
 	GtkWidget *log_diff_selected_button;
 	GtkWidget *log_view_selected_button;
+	GtkWidget *button;
 	GtkListStore *log_list_store;
 	GtkTreeSelection *selection;
 	
@@ -592,7 +595,10 @@
 													 "log_diff_selected_button");
 	log_view_selected_button = glade_xml_get_widget (plugin->log_gxml,
 													 "log_view_selected_button");
-	
+	button = glade_xml_get_widget(plugin->log_gxml, BROWSE_BUTTON_LOG_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_subversion_browse_button_clicked), log_file_entry);
+
 	g_signal_connect (G_OBJECT (log_view_button), "clicked",
 					  G_CALLBACK (on_log_view_button_clicked),
 					  data);
Index: plugins/subversion/anjuta-subversion.glade
===================================================================
--- plugins/subversion/anjuta-subversion.glade	(revision 4941)
+++ plugins/subversion/anjuta-subversion.glade	(working copy)
@@ -2,7 +2,6 @@
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
 <!--*- mode: xml -*-->
 <glade-interface>
-  <requires lib="gnome"/>
   <requires lib="anjuta"/>
   <widget class="GtkWindow" id="preferences_subversion">
     <property name="visible">True</property>
@@ -59,18 +58,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="gnomefileentry">
+              <widget class="GtkHBox" id="hbox01">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="subversion_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_add_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -404,18 +415,30 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeFileEntry" id="fileentry4">
+              <widget class="GtkHBox" id="hbox02">
                 <property name="visible">True</property>
-                <property name="modal">True</property>
-                <property name="use_filechooser">True</property>
-                <property name="max_saved">10</property>
-                <child internal-child="entry">
+                <child>
                   <widget class="GtkEntry" id="subversion_filename">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">&#x25CF;</property>
                     <property name="width_request">260</property>
+                  </widget>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <widget class="GtkButton" id="browse_button_update_dialog">
+                    <property name="label" translatable="yes">Browse...</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="invisible_char">*</property>
+                    <property name="receives_default">True</property>
                   </widget>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
               </widget>
               <packing>
@@ -489,16 +512,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry5">
+                              <widget class="GtkEntry" id="subversion_revision">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="subversion_revision">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -594,18 +611,31 @@
                     <property name="visible">True</property>
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <child>
-                      <widget class="GnomeFileEntry" id="fileentry1">
+                      <widget class="GtkHBox" id="hbox03">
                         <property name="visible">True</property>
-                        <property name="modal">True</property>
-                        <property name="use_filechooser">True</property>
-                        <property name="max_saved">10</property>
-                        <child internal-child="entry">
+                        <child>
                           <widget class="GtkEntry" id="diff_path_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
-                            <property name="invisible_char">*</property>
+                            <property name="invisible_char">&#x25CF;</property>
+                            <property name="width_request">260</property>
                           </widget>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
+                        <child>
+                          <widget class="GtkButton" id="browse_button_diff_dialog">
+                            <property name="label" translatable="yes">Browse...</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
                       </widget>
                     </child>
                     <child>
@@ -697,16 +727,10 @@
                               </packing>
                             </child>
                             <child>
-                              <widget class="GnomeEntry" id="entry7">
+                              <widget class="GtkEntry" id="diff_revision_entry">
                                 <property name="visible">True</property>
-                                <property name="max_saved">10</property>
-                                <child internal-child="entry">
-                                  <widget class="GtkEntry" id="diff_revision_entry">
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="invisible_char">*</property>
-                                  </widget>
-                                </child>
+                                <property name="can_focus">True</property>
+                                <property name="invisible_char">*</property>
                               </widget>
                               <packing>
                                 <property name="position">1</property>
@@ -1473,18 +1497,32 @@
                         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                         <property name="spacing">2</property>
                         <child>
-                          <widget class="GnomeFileEntry" id="gnomefileentry1">
+                          <widget class="GtkHBox" id="hbox04">
                             <property name="visible">True</property>
-                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                            <property name="spacing">4</property>
-                            <property name="use_filechooser">True</property>
-                            <child internal-child="entry">
+                            <child>
                               <widget class="GtkEntry" id="log_file_entry">
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
+                                <property name="invisible_char">&#x25CF;</property>
+                                <property name="width_request">260</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                               </widget>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
                             </child>
+                            <child>
+                              <widget class="GtkButton" id="browse_button_log_dialog">
+                                <property name="label" translatable="yes">Browse...</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">True</property>
+                              </widget>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
                           </widget>
                         </child>
                         <child>
@@ -2137,18 +2175,32 @@
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <widget class="GnomeFileEntry" id="gnomefileentry2">
+                      <widget class="GtkHBox" id="hbox05">
                         <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="spacing">4</property>
-                        <property name="use_filechooser">True</property>
-                        <child internal-child="entry">
+                        <child>
                           <widget class="GtkEntry" id="switch_working_copy_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="invisible_char">&#x25CF;</property>
+                            <property name="width_request">260</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                           </widget>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
+                        <child>
+                          <widget class="GtkButton" id="browse_button_switch_dialog">
+                            <property name="label" translatable="yes">Browse...</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
                       </widget>
                     </child>
                   </widget>
@@ -2544,18 +2596,32 @@
                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                     <property name="left_padding">12</property>
                     <child>
-                      <widget class="GnomeFileEntry" id="gnomefileentry3">
+                      <widget class="GtkHBox" id="hbox06">
                         <property name="visible">True</property>
-                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
-                        <property name="spacing">4</property>
-                        <property name="use_filechooser">True</property>
-                        <child internal-child="entry">
+                        <child>
                           <widget class="GtkEntry" id="merge_working_copy_path_entry">
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
+                            <property name="invisible_char">&#x25CF;</property>
+                            <property name="width_request">260</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
                           </widget>
+                          <packing>
+                            <property name="position">0</property>
+                          </packing>
                         </child>
+                        <child>
+                          <widget class="GtkButton" id="browse_button_merge_dialog">
+                            <property name="label" translatable="yes">Browse...</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                          </widget>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">1</property>
+                          </packing>
+                        </child>
                       </widget>
                     </child>
                   </widget>
Index: plugins/subversion/subversion-add-dialog.c
===================================================================
--- plugins/subversion/subversion-add-dialog.c	(revision 4941)
+++ plugins/subversion/subversion-add-dialog.c	(working copy)
@@ -27,6 +27,8 @@
 
 #include "subversion-add-dialog.h"
 
+#define BROWSE_BUTTON_ADD_DIALOG "browse_button_add_dialog"
+
 static void
 on_add_command_finished (AnjutaCommand *command, guint return_code, 
 						 Subversion *plugin)
@@ -93,6 +95,7 @@
 	GladeXML* gxml;
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
+	GtkWidget* button;
 	SubversionData* data;
 	gxml = glade_xml_new(GLADE_FILE, "subversion_add", NULL);
 	
@@ -100,7 +103,11 @@
 	fileentry = glade_xml_get_widget(gxml, "subversion_filename");
 	if (filename)
 		gtk_entry_set_text(GTK_ENTRY(fileentry), filename);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_ADD_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_subversion_browse_button_clicked), fileentry);
+
 	data = subversion_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_subversion_add_response), data);
Index: plugins/subversion/subversion-merge-dialog.c
===================================================================
--- plugins/subversion/subversion-merge-dialog.c	(revision 4941)
+++ plugins/subversion/subversion-merge-dialog.c	(working copy)
@@ -24,6 +24,8 @@
 
 #include "subversion-merge-dialog.h"
 
+#define BROWSE_BUTTON_MERGE_DIALOG "browse_button_merge_dialog"
+
 static void
 on_merge_command_finished (AnjutaCommand *command, guint return_code,
 						   Subversion *plugin)
@@ -314,6 +316,7 @@
 	GtkWidget *merge_working_copy_path_entry;
 	GtkWidget *merge_start_revision_radio;
 	GtkWidget *merge_end_revision_radio;
+	GtkWidget *button;
 	SubversionData *data;
 	
 	gxml = glade_xml_new (GLADE_FILE, "subversion_merge", NULL);
@@ -341,7 +344,11 @@
 	g_signal_connect (G_OBJECT (subversion_merge), "response",
 					  G_CALLBACK (on_subversion_merge_response),
 					  data);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_MERGE_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_subversion_browse_button_clicked), merge_working_copy_path_entry);
+
 	g_signal_connect (G_OBJECT (merge_first_path_browse_button), "clicked",
 					  G_CALLBACK (on_merge_first_path_browse_button_clicked),
 					  data);
Index: plugins/subversion/subversion-ui-utils.c
===================================================================
--- plugins/subversion/subversion-ui-utils.c	(revision 4941)
+++ plugins/subversion/subversion-ui-utils.c	(working copy)
@@ -404,3 +404,26 @@
 						 (GWeakNotify) disconnect_data_arrived_signals,
 						 command);
 }
+
+void
+on_subversion_browse_button_clicked (GtkButton *button, GtkEntry *entry)
+{
+	GtkWidget *dialog;
+	dialog = gtk_file_chooser_dialog_new ("Open File",
+					      NULL,
+					      GTK_FILE_CHOOSER_ACTION_OPEN,
+					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+					      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+					      NULL);
+	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+	{
+		char *filename;
+		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+
+		gtk_entry_set_text (entry, filename);
+
+		g_free (filename);
+	}
+	gtk_widget_destroy (dialog);
+}
+
Index: plugins/subversion/subversion-update-dialog.c
===================================================================
--- plugins/subversion/subversion-update-dialog.c	(revision 4941)
+++ plugins/subversion/subversion-update-dialog.c	(working copy)
@@ -27,6 +27,8 @@
 
 #include "subversion-update-dialog.h"
 
+#define BROWSE_BUTTON_UPDATE_DIALOG "browse_button_update_dialog"
+
 static void
 on_update_command_finished (AnjutaCommand *command, guint return_code,
 							Subversion *plugin)
@@ -103,6 +105,7 @@
 	GtkWidget* dialog; 
 	GtkWidget* fileentry;
 	GtkWidget* project;
+	GtkWidget* button;
 	SubversionData* data;
 	
 	gxml = glade_xml_new(GLADE_FILE, "subversion_update", NULL);
@@ -117,7 +120,11 @@
 	g_signal_connect(G_OBJECT(project), "toggled", 
 		G_CALLBACK(on_whole_project_toggled), plugin);
 	init_whole_project(plugin, project, !filename);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_UPDATE_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_subversion_browse_button_clicked), fileentry);
+
 	data = subversion_data_new(plugin, gxml);
 	g_signal_connect(G_OBJECT(dialog), "response", 
 		G_CALLBACK(on_subversion_update_response), data);
Index: plugins/subversion/subversion-ui-utils.h
===================================================================
--- plugins/subversion/subversion-ui-utils.h	(revision 4941)
+++ plugins/subversion/subversion-ui-utils.h	(working copy)
@@ -79,4 +79,5 @@
 void cancel_data_arrived_signal_disconnect (AnjutaCommand *command, 
 											guint return_code,
 											GObject *signal_target);
+void on_subversion_browse_button_clicked (GtkButton *button, GtkEntry *entry);
 #endif
Index: plugins/subversion/subversion-switch-dialog.c
===================================================================
--- plugins/subversion/subversion-switch-dialog.c	(revision 4941)
+++ plugins/subversion/subversion-switch-dialog.c	(working copy)
@@ -24,6 +24,8 @@
 
 #include "subversion-switch-dialog.h"
 
+#define BROWSE_BUTTON_SWITCH_DIALOG "browse_button_switch_dialog"
+
 static void
 on_switch_other_revision_radio_toggled (GtkToggleButton *toggle_button,
 									    SubversionData *data)
@@ -157,6 +159,7 @@
 	GtkWidget *subversion_switch;
 	GtkWidget *switch_working_copy_entry;
 	GtkWidget *switch_other_revision_radio;
+	GtkWidget *button;
 	SubversionData *data;
 	
 	gxml = glade_xml_new (GLADE_FILE, "subversion_switch", NULL);
@@ -167,7 +170,11 @@
 													    "switch_other_revision_radio");
 	
 	data = subversion_data_new (plugin, gxml);
-	
+
+	button = glade_xml_get_widget(gxml, BROWSE_BUTTON_SWITCH_DIALOG);
+	g_signal_connect(G_OBJECT(button), "clicked", 
+		G_CALLBACK(on_subversion_browse_button_clicked), switch_working_copy_entry);
+
 	g_signal_connect (G_OBJECT (subversion_switch), "response",
 					  G_CALLBACK (on_subversion_switch_response),
 					  data);
Index: plugins/tools/anjuta-tools.glade
===================================================================
--- plugins/tools/anjuta-tools.glade	(revision 4941)
+++ plugins/tools/anjuta-tools.glade	(working copy)
@@ -2,7 +2,6 @@
 <!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
 <!--Generated with glade3 3.4.2 on Mon Mar 31 15:12:40 2008 -->
 <glade-interface>
-  <requires lib="gnome"/>
   <widget class="GtkWindow" id="list_tools">
     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
     <child>
@@ -249,18 +248,31 @@
               <widget class="GtkHBox" id="hbox27">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GnomeFileEntry" id="fileentry3">
+                  <widget class="GtkHBox" id="hbox02">
                     <property name="visible">True</property>
-                    <property name="use_filechooser">True</property>
-                    <property name="filechooser_action">select-folder</property>
-                    <property name="max_saved">10</property>
-                    <child internal-child="entry">
+                    <child>
                       <widget class="GtkEntry" id="directory_entry">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="invisible_char">*</property>
+                        <property name="invisible_char">&#x25CF;</property>
+                        <property name="width_request">260</property>
                       </widget>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
                     </child>
+                    <child>
+                      <widget class="GtkButton" id="browse_button_directory_entry">
+                        <property name="label" translatable="yes">Browse...</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </widget>
                 </child>
                 <child>
@@ -305,16 +317,10 @@
               <widget class="GtkHBox" id="hbox26">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GnomeEntry" id="entry24">
+                  <widget class="GtkEntry" id="parameter_entry">
                     <property name="visible">True</property>
-                    <property name="max_saved">10</property>
-                    <child internal-child="entry">
-                      <widget class="GtkEntry" id="parameter_entry">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="invisible_char">*</property>
-                      </widget>
-                    </child>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">*</property>
                   </widget>
                 </child>
                 <child>
@@ -400,9 +406,10 @@
               </packing>
             </child>
             <child>
-              <widget class="GnomeIconEntry" id="icon_entry">
+              <widget class="GtkButton" id="icon_entry">
                 <property name="visible">True</property>
-                <property name="max_saved">10</property>
+                <property name="can_focus">True</property>
+                <signal name="clicked" handler="on_editor_icon_entry_clicked"/>
               </widget>
               <packing>
                 <property name="left_attach">3</property>
@@ -500,16 +507,10 @@
               <widget class="GtkHBox" id="hbox28">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GnomeEntry" id="entry26">
+                  <widget class="GtkEntry" id="input_entry">
                     <property name="visible">True</property>
-                    <property name="max_saved">10</property>
-                    <child internal-child="entry">
-                      <widget class="GtkEntry" id="input_entry">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="invisible_char">*</property>
-                      </widget>
-                    </child>
+                    <property name="can_focus">True</property>
+                    <property name="invisible_char">*</property>
                   </widget>
                 </child>
                 <child>
@@ -541,18 +542,31 @@
               <widget class="GtkHBox" id="hbox29">
                 <property name="visible">True</property>
                 <child>
-                  <widget class="GnomeFileEntry" id="fileentry2">
+                  <widget class="GtkHBox" id="hbox01">
                     <property name="visible">True</property>
-                    <property name="modal">True</property>
-                    <property name="use_filechooser">True</property>
-                    <property name="max_saved">10</property>
-                    <child internal-child="entry">
+                    <child>
                       <widget class="GtkEntry" id="command_entry">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
-                        <property name="invisible_char">*</property>
+                        <property name="invisible_char">&#x25CF;</property>
+                        <property name="width_request">260</property>
                       </widget>
+                      <packing>
+                        <property name="position">0</property>
+                      </packing>
                     </child>
+                    <child>
+                      <widget class="GtkButton" id="browse_button_command_entry">
+                        <property name="label" translatable="yes">Browse...</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">True</property>
+                      </widget>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
                   </widget>
                 </child>
                 <child>
Index: plugins/tools/editor.c
===================================================================
--- plugins/tools/editor.c	(revision 4941)
+++ plugins/tools/editor.c	(working copy)
@@ -93,7 +93,7 @@
 	ATPVariableDialog input_file_var;
 	ATPVariableDialog input_string_var;
 	GtkToggleButton *shortcut_bt;
-	GnomeIconEntry *icon_en;
+	GtkButton *icon_en;
 	gchar* shortcut;
 	ATPUserTool *tool;
 	ATPToolDialog* parent;
@@ -122,6 +122,8 @@
 #define TOOL_INPUT_VARIABLE "input_button"
 #define TOOL_SHORTCUT "shortcut_bt"
 #define TOOL_ICON "icon_entry"
+#define TOOL_BROWSE_WORKING_DIR "browse_button_directory_entry"
+#define TOOL_BROWSE_COMMAND "browse_button_command_entry"
 
 #define EDITOR_RESPONSE_SIGNAL "on_editor_dialog_response"
 #define EDITOR_PARAM_VARIABLE_SIGNAL "on_variable_parameter"
@@ -131,6 +133,7 @@
 #define EDITOR_TOGGLE_TERMINAL_SIGNAL "on_toggle_terminal"
 #define EDITOR_TOGGLE_SHORCUT_SIGNAL "on_toggle_shorcut"
 #define EDITOR_TOGGLE_SCRIPT_SIGNAL "on_toggle_script"
+#define EDITOR_ICON_ENTRY_CLICKED "on_editor_icon_entry_clicked"
 
 #define TOOL_VARIABLE "variable_dialog"
 #define VARIABLE_TREEVIEW "variable_treeview"
@@ -481,6 +484,31 @@
  *---------------------------------------------------------------------------*/
 
 static void
+on_editor_icon_entry_clicked (GtkButton *button, gpointer user_data)
+{
+	ATPToolEditor *this = (ATPToolEditor *)user_data;
+	GtkWidget *dialog;
+	dialog = gtk_file_chooser_dialog_new ("Open File",
+								NULL,
+								GTK_FILE_CHOOSER_ACTION_OPEN,
+								GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+								GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+								NULL);
+	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+	{
+		char *filename;
+		GtkWidget* image;
+
+		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+		image = gtk_image_new_from_file (filename);
+		gtk_button_set_image (button, image);
+		atp_user_tool_set_icon (this->tool, filename);
+		g_free (filename);
+	}
+	gtk_widget_destroy (dialog);
+}
+
+static void
 atp_clear_tool_editor(ATPToolEditor* this)
 {
 	g_return_if_fail (this != NULL);
@@ -608,7 +636,12 @@
 	}
 	atp_editor_update_shortcut (this);
 
-	gnome_icon_entry_set_filename (this->icon_en, atp_user_tool_get_icon (this->tool));
+	if (atp_user_tool_get_icon (this->tool))
+	{
+		GtkWidget* image;
+		image = gtk_image_new_from_file (atp_user_tool_get_icon (this->tool));
+		gtk_button_set_image (this->icon_en, image);
+	}
 }
 
 static void
@@ -683,7 +716,6 @@
 	gchar* name;
 	gchar* data;
 	ATPInputType in_type;
-	gchar* value;
 	guint accel_key;
 	GdkModifierType accel_mods;
 	GtkAccelGroup* group;
@@ -773,10 +805,6 @@
 
 		atp_user_tool_set_accelerator (this->tool, accel_key, accel_mods);
 
-		value = gnome_icon_entry_get_filename (this->icon_en);	
-		atp_user_tool_set_icon (this->tool, value);
-		g_free (value);	
-
 		/* Open script in editor if requested */
 		if (gtk_toggle_button_get_active (this->script_tb))
 		{
@@ -964,9 +992,54 @@
 	}
 }
 
+static void
+on_editor_browse_button_clicked (GtkButton *button, GtkEntry *entry)
+{
+	GtkWidget *dialog;
+	dialog = gtk_file_chooser_dialog_new ("Open File",
+					      NULL,
+					      GTK_FILE_CHOOSER_ACTION_OPEN,
+					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+					      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+					      NULL);
+	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+	{
+		char *filename;
+		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+
+		gtk_entry_set_text (entry, filename);
+
+		g_free (filename);
+	}
+	gtk_widget_destroy(dialog);
+}
+
+static void
+on_editor_browse_button_dir_clicked (GtkButton *button, GtkEntry *entry)
+{
+	GtkWidget *dialog;
+	dialog = gtk_file_chooser_dialog_new ("Open",
+					      NULL,
+					      GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
+					      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+					      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+					      NULL);
+	if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+	{
+		char *filename;
+		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+
+		gtk_entry_set_text (entry, filename);
+
+		g_free (filename);
+	}
+	gtk_widget_destroy(dialog);
+}
+
 gboolean
 atp_tool_editor_show (ATPToolEditor* this)
 {
+	GtkWidget *button;
 	GladeXML *xml;
 
 	if (this->dialog != NULL)
@@ -1005,8 +1078,15 @@
 	this->shortcut_bt = GTK_TOGGLE_BUTTON (glade_xml_get_widget(xml, TOOL_SHORTCUT));
 	atp_variable_dialog_set_entry (&this->input_file_var, this->input_en);
 	atp_variable_dialog_set_entry (&this->input_string_var, this->input_en);
-	this->icon_en = GNOME_ICON_ENTRY (glade_xml_get_widget(xml, TOOL_ICON));
+	this->icon_en = GTK_BUTTON (glade_xml_get_widget(xml, TOOL_ICON));
 
+	button = GTK_WIDGET (glade_xml_get_widget (xml, TOOL_BROWSE_WORKING_DIR));
+	g_signal_connect(G_OBJECT(button), "clicked", 
+					G_CALLBACK(on_editor_browse_button_dir_clicked), this->dir_en);
+	button = GTK_WIDGET (glade_xml_get_widget (xml, TOOL_BROWSE_COMMAND));
+	g_signal_connect(G_OBJECT(button), "clicked", 
+					G_CALLBACK(on_editor_browse_button_clicked), this->command_en);
+
 	/* Add combox box value */
 	set_combo_box_enum_model (this->error_com, atp_get_error_type_list());
 	set_combo_box_enum_model (this->output_com, atp_get_output_type_list());
@@ -1025,6 +1105,7 @@
 	glade_xml_signal_connect_data (xml, EDITOR_TOGGLE_SCRIPT_SIGNAL, G_CALLBACK (on_editor_script_toggle), this);
 	glade_xml_signal_connect_data (xml, EDITOR_INPUT_VARIABLE_SIGNAL, G_CALLBACK (on_editor_input_variable_show), this);
 	glade_xml_signal_connect_data (xml, EDITOR_INPUT_CHANGED_SIGNAL, G_CALLBACK (on_editor_input_changed), this);
+	glade_xml_signal_connect_data (xml, EDITOR_ICON_ENTRY_CLICKED, G_CALLBACK (on_editor_icon_entry_clicked), this);
 
 	g_object_unref (xml);
 

