Close debugger when closing.  This may break a cycle.
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py
index 90f9b2c..8c93f4d 100644
--- a/Tools/idle/PyShell.py
+++ b/Tools/idle/PyShell.py
@@ -390,6 +390,7 @@
         return PyShellEditorWindow.close(self)
 
     def _close(self):
+        self.close_debugger()
         # Restore std streams
         sys.stdout = self.save_stdout
         sys.stderr = self.save_stderr