--- src/file-manager/fm-directory-view.c	2004-09-25 17:10:24.000000000 +0200
+++ src/file-manager/fm-directory-view.c	2004-09-29 18:13:28.073456876 +0200
@@ -4096,15 +4096,7 @@
 	g_free (name);
 }
 
-static void
-warn_mismatched_mime_types_response_cb (GtkWidget *dialog,
-					int response,
-					gpointer user_data)
-{
-	gtk_widget_destroy (dialog);
-}
-
-static void
+static gboolean
 warn_mismatched_mime_types (FMDirectoryView *view,
 			    NautilusFile *file)
 {
@@ -4116,7 +4108,8 @@
 	char *primary;
 	char *secondary;
 	char *name;
-	
+	gint rc;
+
 	guessed_mime_type = nautilus_file_get_guessed_mime_type (file);
 	mime_type = nautilus_file_get_mime_type (file);
 
@@ -4157,16 +4150,20 @@
 	g_free (name);
 
 	gtk_dialog_add_button (GTK_DIALOG (dialog),
+			       GTK_STOCK_OPEN, GTK_RESPONSE_OK);
+	gtk_dialog_add_button (GTK_DIALOG (dialog),
 			       GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
 	gtk_dialog_set_default_response (GTK_DIALOG (dialog), 
 					 GTK_RESPONSE_CANCEL);
 
-	g_signal_connect (dialog, 
-			  "response",
-			  G_CALLBACK (warn_mismatched_mime_types_response_cb),
-			  file);
+	rc = gtk_dialog_run (dialog);
 
-	gtk_widget_show (dialog);
+	gtk_widget_destroy (dialog);
+
+	if (rc == GTK_RESPONSE_OK)
+		return TRUE;
+	else
+		return FALSE;
 }
 
 static gboolean
@@ -4196,8 +4193,7 @@
 		    guessed_default_app == NULL ||
 		    guessed_default_app->id == NULL ||
 		    strcmp (default_app->id, guessed_default_app->id) != 0) {
-			warn_mismatched_mime_types (view, file);
-			ret = FALSE;
+			ret = warn_mismatched_mime_types (view, file);
 		}
 	}
 
