diff -r 32af4954e46a Lib/idlelib/MultiCall.py --- a/Lib/idlelib/MultiCall.py Tue Feb 04 18:44:17 2014 -0800 +++ b/Lib/idlelib/MultiCall.py Wed Feb 05 14:49:05 2014 +0200 @@ -227,7 +227,13 @@ def __del__(self): for seq, id in self.handlerids: - self.widget.unbind(self.widgetinst, seq, id) + try: + self.widget.unbind(self.widgetinst, seq, id) + except tkinter.TclError: + # The underlying Tk widget has probably been destroyed. + # No need to try to unbind the rest of the handlers. + # see: http://bugs.python.org/issue20167 + break # define the list of event types to be handled by MultiEvent. the order is # compatible with the definition of event type constants.