diff -rupN gnucash-2.3.14/src/gnome-utils/gnc-file.c new-gnucash-2.3.14/src/gnome-utils/gnc-file.c
--- gnucash-2.3.14/src/gnome-utils/gnc-file.c	2010-07-07 11:48:30.000000000 +0000
+++ new-gnucash-2.3.14/src/gnome-utils/gnc-file.c	2010-08-02 14:17:39.000000000 +0000
@@ -906,6 +906,10 @@ gnc_file_export_file(const char * newfil
             return;
     }
 
+    /* Try to test for extension on file name and add if missing */
+    if (g_strrstr(newfile,".") == NULL)
+	newfile = g_strconcat(newfile,".",g_ascii_strdown("gnucash",strlen("gnucash")),NULL);
+
     /* Remember the directory as the default. */
     default_dir = g_path_get_dirname(newfile);
     gnc_set_default_directory (GCONF_SECTION, default_dir);

diff -rupN gnucash-2.3.14/src/report/report-gnome/gnc-plugin-page-report.c new-gnucash-2.3.14/src/report/report-gnome/gnc-plugin-page-report.c
--- gnucash-2.3.14/src/report/report-gnome/gnc-plugin-page-report.c	2010-03-31 10:35:12.000000000 +0000
+++ new-gnucash-2.3.14/src/report/report-gnome/gnc-plugin-page-report.c	2010-08-02 14:15:10.000000000 +0000
@@ -1403,6 +1403,10 @@ gnc_get_export_filename (SCM choice)
 
     filepath = gnc_file_dialog (title, NULL, NULL, GNC_FILE_DIALOG_EXPORT);
 
+    /* Try to test for extension on file name, add if missing */
+    if (g_strrstr(filepath,".") == NULL)
+	filepath = g_strconcat(filepath,".",g_ascii_strdown(type,strlen(type)),NULL);
+
     g_free (title);
 
     if (!filepath)
