Break some cycles when the widget is destroyed.
diff --git a/Lib/lib-tk/tkSimpleDialog.py b/Lib/lib-tk/tkSimpleDialog.py
index 1e7ed46..1830d66 100644
--- a/Lib/lib-tk/tkSimpleDialog.py
+++ b/Lib/lib-tk/tkSimpleDialog.py
@@ -48,6 +48,10 @@
 
         self.wait_window(self)
 
+    def destroy(self):
+        self.initial_focus = None
+        Toplevel.destroy(self)
+
     #
     # construction hooks
 
@@ -131,6 +135,10 @@
 
         Dialog.__init__(self, parent, title)
 
+    def destroy(self):
+        self.entry = None
+        Dialog.destroy(self)
+
     def body(self, master):
 
         w = Label(master, text=self.prompt, justify=LEFT)