diff --git a/Lib/lib-tk/tkSimpleDialog.py b/Lib/lib-tk/tkSimpleDialog.py
index 15ff544..3dac212 100644
--- a/Lib/lib-tk/tkSimpleDialog.py
+++ b/Lib/lib-tk/tkSimpleDialog.py
@@ -68,8 +68,9 @@
 
         self.protocol("WM_DELETE_WINDOW", self.cancel)
 
-        self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
-                                  parent.winfo_rooty()+50))
+        if self.parent is not None:
+            self.geometry("+%d+%d" % (parent.winfo_rootx()+50,
+                                      parent.winfo_rooty()+50))
 
         self.initial_focus.focus_set()
 
@@ -95,7 +96,7 @@
     def buttonbox(self):
         '''add standard button box.
 
-        override if you don't want the standard buttons
+        override if you do not want the standard buttons
         '''
 
         box = Frame(self)
@@ -129,7 +130,8 @@
     def cancel(self, event=None):
 
         # put focus back to the parent window
-        self.parent.focus_set()
+        if self.parent is not None:
+            self.parent.focus_set()
         self.destroy()
 
     #
@@ -270,6 +272,20 @@
     return d.result
 
 class _QueryString(_QueryDialog):
+    def __init__(self, *args, **kw):
+        if kw.has_key("show"):
+            self.__show = kw["show"]
+            del kw["show"]
+        else:
+            self.__show = None
+        _QueryDialog.__init__(self, *args, **kw)
+
+    def body(self, master):
+        entry = _QueryDialog.body(self, master)
+        if self.__show is not None:
+            entry.configure(show=self.__show)
+        return entry
+
     def getresult(self):
         return self.entry.get()
 
