diff --git a/src/ReportBase/_FileEntry.py b/src/ReportBase/_FileEntry.py
index e7f5688cd..7bbb25a4d 100644
--- a/src/ReportBase/_FileEntry.py
+++ b/src/ReportBase/_FileEntry.py
@@ -2,6 +2,7 @@
 # Gramps - a GTK+/GNOME based genealogy program
 #
 # Copyright (C) 2001-2006  Donald N. Allingham
+# Copyright (C) 2009       Brian G. Matherly
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -21,74 +22,80 @@
 # $Id:_FileEntry.py 9912 2008-01-22 09:17:46Z acraphae $
 
 import os
-import sys
 import gtk
 import Utils
 
 class FileEntry(gtk.HBox):
-    def __init__(self,defname,title):
+    """ A widget that allows the user to select a file from the file system """
+    def __init__(self, defname, title):
         gtk.HBox.__init__(self)
 
         self.title = title
         self.dir = False
+        self.__base_path = ""
+        self.__file_name = ""
         self.entry = gtk.Entry()
         self.entry.set_text(defname)
         self.set_filename(defname)
         self.set_spacing(6)
         self.set_homogeneous(False)
         self.button = gtk.Button()
-        im = gtk.Image()
-        im.set_from_stock(gtk.STOCK_OPEN,gtk.ICON_SIZE_BUTTON)
-        self.button.add(im)
-        self.button.connect('clicked',self.select_file)
-        self.pack_start(self.entry,True,True)
-        self.pack_end(self.button,False,False)
+        image = gtk.Image()
+        image.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
+        self.button.add(image)
+        self.button.connect('clicked', self.__select_file)
+        self.pack_start(self.entry, True, True)
+        self.pack_end(self.button, False, False)
 
-    def select_file(self, obj):
+    def __select_file(self, obj):
+        """ Call back function to handle the open button press """
         if self.dir:
             my_action = gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER
         else:
             my_action = gtk.FILE_CHOOSER_ACTION_SAVE
         
-        f = gtk.FileChooserDialog(self.title,
-                                  action=my_action,
-                                  buttons=(gtk.STOCK_CANCEL,
-                                           gtk.RESPONSE_CANCEL,
-                                           gtk.STOCK_OPEN,
-                                           gtk.RESPONSE_OK))
+        dialog = gtk.FileChooserDialog(self.title,
+                                       action=my_action,
+                                       buttons=(gtk.STOCK_CANCEL,
+                                                gtk.RESPONSE_CANCEL,
+                                                gtk.STOCK_OPEN,
+                                                gtk.RESPONSE_OK))
 
         name = os.path.basename(self.entry.get_text())
         if self.dir:
             if os.path.isdir(name):
-                f.set_current_name(name)
+                dialog.set_current_name(name)
             elif os.path.isdir(os.path.basename(name)):
-                f.set_current_name(os.path.basename(name))
+                dialog.set_current_name(os.path.basename(name))
         else:
-            f.set_current_name(name)
-        f.set_current_folder(self.spath)
-        f.present()
-        status = f.run()
+            dialog.set_current_name(name)
+        dialog.set_current_folder(self.__base_path)
+        dialog.present()
+        status = dialog.run()
         if status == gtk.RESPONSE_OK:
-            self.set_filename(Utils.get_unicode_path(f.get_filename()))
-        f.destroy()
+            self.set_filename(Utils.get_unicode_path(dialog.get_filename()))
+        dialog.destroy()
 
-    def set_filename(self,path):
+    def set_filename(self, path):
+        """ Set the currently selected dialog. """
         if not path:
             return
         if os.path.dirname(path):
-            self.spath = os.path.dirname(path)
-            self.defname = os.path.basename(path)
-
+            self.__base_path = os.path.dirname(path)
+            self.__file_name = os.path.basename(path)
         else:
-            self.spath = os.getcwd()
-            self.defname = path
-        self.entry.set_text(os.path.join(self.spath,self.defname))
+            self.__base_path = os.getcwd()
+            self.__file_name = path
+        self.entry.set_text(os.path.join(self.__base_path, self.__file_name))
 
-    def gtk_entry(self):
-        return self.entry
-
-    def get_full_path(self,val):
+    def get_full_path(self, val):
+        """ Get the full path of the currently selected file. """
         return self.entry.get_text()
 
     def set_directory_entry(self, opt):
+        """ 
+        Configure the FileEntry to either select a directory or a file. 
+        Set it to True to select a directory.
+        Set it to False to select a file.
+        """
         self.dir = opt
diff --git a/src/ReportBase/_ReportDialog.py b/src/ReportBase/_ReportDialog.py
index 62b99ae26..0974f3449 100644
--- a/src/ReportBase/_ReportDialog.py
+++ b/src/ReportBase/_ReportDialog.py
@@ -447,7 +447,6 @@ class ReportDialog(ManagedWindow.ManagedWindow):
         self.target_fileentry = FileEntry(hid, _("Save As"))
         spath = self.get_default_directory()
         self.target_fileentry.set_filename(spath)
-        self.target_fileentry.gtk_entry().set_position(len(spath))
         # need any labels at top:
         label = gtk.Label("<b>%s</b>" % _('Document Options'))
         label.set_use_markup(1)