diff -r 03af0d16c328 Lib/idlelib/run.py --- a/Lib/idlelib/run.py Mon Mar 26 22:14:13 2012 +0300 +++ b/Lib/idlelib/run.py Tue Apr 03 18:59:47 2012 -0500 @@ -98,7 +98,7 @@ try: if exit_now: try: - exit() + break except KeyboardInterrupt: # exiting but got an extra KBI? Try again! continue @@ -124,9 +124,11 @@ except: # Link didn't work, print same exception to __stderr__ traceback.print_exception(type, value, tb, file=sys.__stderr__) - exit() + break else: continue + sockthread.shutdown() + exit() def manage_socket(address): for i in range(3): @@ -279,7 +281,7 @@ def exithook(self): "override SocketIO method - wait for MainThread to shut us down" - time.sleep(10) + pass def EOFhook(self): "Override SocketIO method - terminate wait on callback and exit thread"