diff -rup gimp-2.0.1/app/widgets/gimpfiledialog.c gimp-2.0.1.patched/app/widgets/gimpfiledialog.c
--- gimp-2.0.1/app/widgets/gimpfiledialog.c	2004-03-04 08:48:35.000000000 -0500
+++ gimp-2.0.1.patched/app/widgets/gimpfiledialog.c	2004-05-19 02:16:21.000000000 -0400
@@ -149,7 +149,6 @@ gimp_file_dialog_new (Gimp            *g
 {
   GimpFileDialog *dialog;
   GtkWidget      *hbox;
-  GtkWidget      *option_menu;
   GtkWidget      *label;
 
   g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
@@ -182,14 +181,14 @@ gimp_file_dialog_new (Gimp            *g
                     FALSE, FALSE, 0);
   gtk_widget_show (hbox);
 
-  option_menu = gtk_option_menu_new ();
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu),
+  dialog->option_menu = gtk_option_menu_new ();
+  gtk_option_menu_set_menu (GTK_OPTION_MENU (dialog->option_menu),
                             GTK_ITEM_FACTORY (dialog->item_factory)->widget);
-  gtk_box_pack_end (GTK_BOX (hbox), option_menu, FALSE, FALSE, 0);
-  gtk_widget_show (option_menu);
+  gtk_box_pack_end (GTK_BOX (hbox), dialog->option_menu, FALSE, FALSE, 0);
+  gtk_widget_show (dialog->option_menu);
 
   label = gtk_label_new_with_mnemonic (_("Determine File _Type:"));
-  gtk_label_set_mnemonic_widget (GTK_LABEL (label), option_menu);
+  gtk_label_set_mnemonic_widget (GTK_LABEL (label), dialog->option_menu);
   gtk_box_pack_end (GTK_BOX (hbox), label, FALSE, FALSE, 0);
   gtk_widget_show (label);
 
@@ -261,6 +260,7 @@ gimp_file_dialog_set_uri (GimpFileDialog
                           const gchar     *uri)
 {
   gchar *filename = NULL;
+  GtkWidget *format;
 
   g_return_if_fail (GIMP_IS_FILE_DIALOG (dialog));
   g_return_if_fail (gimage == NULL || GIMP_IS_IMAGE (gimage));
@@ -289,6 +289,11 @@ gimp_file_dialog_set_uri (GimpFileDialog
 				   filename ?
 				   filename : "." G_DIR_SEPARATOR_S);
 
+  gtk_option_menu_set_history (GTK_OPTION_MENU (dialog->option_menu), 0);
+  format = gtk_option_menu_get_menu (GTK_OPTION_MENU (dialog->option_menu));
+  format = gtk_menu_get_active (GTK_MENU (format));
+  gtk_menu_item_activate (GTK_MENU_ITEM (format));
+
   g_free (filename);
 }
 
@@ -299,7 +304,8 @@ gimp_file_dialog_set_image (GimpFileDial
                             gboolean        set_image_clean)
 {
   gchar *filename;
-
+  GtkWidget *format;
+  
   g_return_if_fail (GIMP_IS_FILE_DIALOG (dialog));
   g_return_if_fail (GIMP_IS_IMAGE (gimage));
 
@@ -318,6 +324,11 @@ gimp_file_dialog_set_image (GimpFileDial
 
   gimp_item_factory_update (dialog->item_factory,
                             gimp_image_active_drawable (gimage));
+
+  gtk_option_menu_set_history (GTK_OPTION_MENU (dialog->option_menu), 0);
+  format = gtk_option_menu_get_menu (GTK_OPTION_MENU (dialog->option_menu));
+  format = gtk_menu_get_active (GTK_MENU (format));
+  gtk_menu_item_activate (GTK_MENU_ITEM (format));
 }
 
 
diff -rup gimp-2.0.1/app/widgets/gimpfiledialog.h gimp-2.0.1.patched/app/widgets/gimpfiledialog.h
--- gimp-2.0.1/app/widgets/gimpfiledialog.h	2004-03-01 08:40:45.000000000 -0500
+++ gimp-2.0.1.patched/app/widgets/gimpfiledialog.h	2004-05-19 01:53:50.000000000 -0400
@@ -48,6 +48,7 @@ struct _GimpFileDialog
   gboolean          set_image_clean;
 
   GtkWidget        *thumb_box;
+  GtkWidget        *option_menu;
 };
 
 struct _GimpFileDialogClass
