diff -urN libgnomeui-2.14.1.old/libgnomeui/gnome-file-entry.c libgnomeui-2.14.1/libgnomeui/gnome-file-entry.c
--- libgnomeui-2.14.1.old/libgnomeui/gnome-file-entry.c	2006-05-02 13:47:50.000000000 -0500
+++ libgnomeui-2.14.1/libgnomeui/gnome-file-entry.c	2006-05-04 07:18:57.000000000 -0500
@@ -485,6 +485,15 @@
 	fentry->fsw = NULL;
 }
 
+static void
+setup_filter(GtkFileChooser *fc)
+{
+	GtkFileFilter *filter;
+	filter = gtk_file_filter_new();
+	gtk_file_filter_add_mime_type(filter, "x-directory/normal");
+	gtk_file_chooser_set_filter(fc, filter);
+}
+
 #ifndef G_OS_WIN32
 /* Does tilde (home directory) expansion on a string */
 static char *
@@ -655,6 +664,9 @@
 					       GTK_RESPONSE_ACCEPT);
 
 		fw = fentry->fsw;
+		if (fentry->_priv->directory_entry)
+			g_signal_connect(fw, "size-request",
+				G_CALLBACK(setup_filter), fentry);
 
 		gtk_dialog_set_default_response (GTK_DIALOG (fw), GTK_RESPONSE_ACCEPT);
 
diff -urN libgnomeui-2.14.1.old/libgnomeui/gnome-icon-entry.c libgnomeui-2.14.1/libgnomeui/gnome-icon-entry.c
--- libgnomeui-2.14.1.old/libgnomeui/gnome-icon-entry.c	2006-05-02 13:47:50.000000000 -0500
+++ libgnomeui-2.14.1/libgnomeui/gnome-icon-entry.c	2006-05-04 07:17:56.000000000 -0500
@@ -514,6 +514,13 @@
 }
 
 static void
+entry_changed(GtkEntry *entry)
+{
+	if (g_path_is_absolute(gtk_entry_get_text(entry)))
+		gtk_widget_activate(GTK_WIDGET(entry));
+}
+
+static void
 browse_clicked(GnomeFileEntry *fentry, GnomeIconEntry *ientry)
 {
 	GtkWidget *w;
@@ -533,6 +540,7 @@
 
 	g_return_if_fail (gtk_file_chooser_get_preview_widget (fc) == NULL);
 
+#if 0
 	w = gtk_frame_new("");
 	gtk_frame_set_shadow_type (GTK_FRAME (w), GTK_SHADOW_NONE);
 
@@ -549,6 +557,7 @@
 		setup_preview (GTK_WIDGET(fc));
 
 	g_free (path);
+#endif
 }
 
 static void
@@ -1037,6 +1046,8 @@
 	g_free(p);
 
 	w = gnome_file_entry_gtk_entry(GNOME_FILE_ENTRY(ientry->_priv->fentry));
+	g_signal_connect_after (w, "changed",
+				G_CALLBACK (entry_changed), ientry);
 
 	closure = g_cclosure_new (G_CALLBACK (entry_activated), ientry, NULL);
 	g_object_watch_closure (G_OBJECT (ientry), closure);
