diff -r 6297fcddf912 Lib/idlelib/EditorWindow.py --- a/Lib/idlelib/EditorWindow.py Fri Apr 19 12:57:54 2013 -0400 +++ b/Lib/idlelib/EditorWindow.py Tue Apr 23 23:46:16 2013 -0500 @@ -117,6 +117,7 @@ from idlelib.MultiStatusBar import MultiStatusBar help_url = None + inhibit_close = False def __init__(self, flist=None, filename=None, key=None, root=None): if EditorWindow.help_url is None: @@ -996,9 +997,15 @@ self.top.deiconify() self.top.lower() self.top.lift() - return self.io.maybesave() + # inhibit closing of the window + self.inhibit_close = True + ret = self.io.maybesave() + self.inhibit_close = False + return ret def close(self): + if self.inhibit_close: + return "break" reply = self.maybesave() if str(reply) != "cancel": self._close() diff -r 6297fcddf912 Lib/idlelib/IOBinding.py --- a/Lib/idlelib/IOBinding.py Fri Apr 19 12:57:54 2013 -0400 +++ b/Lib/idlelib/IOBinding.py Tue Apr 23 23:46:16 2013 -0500 @@ -318,6 +318,7 @@ title="Save On Close", message=message, default=tkMessageBox.YES, + parent=self.editwin.top, master=self.text) if confirm: reply = "yes"