diff -r 0e2274a776c7 Lib/idlelib/MultiCall.py --- a/Lib/idlelib/MultiCall.py Sat Apr 14 21:58:33 2012 -0400 +++ b/Lib/idlelib/MultiCall.py Sun Apr 15 16:17:05 2012 -0500 @@ -170,8 +170,9 @@ break ishandlerrunning[:] = [] # Call all functions in doafterhandler and remove them from list - while doafterhandler: - doafterhandler.pop()() + for f in doafterhandler: + f() + doafterhandler[:] = [] if r: return r return handler