ScriptBinding event handlers weren't returning 'break'. Patch 2050, Tal Einat.
diff --git a/Lib/idlelib/ScriptBinding.py b/Lib/idlelib/ScriptBinding.py
index 3746eb8..cb01110 100644
--- a/Lib/idlelib/ScriptBinding.py
+++ b/Lib/idlelib/ScriptBinding.py
@@ -56,11 +56,11 @@
     def check_module_event(self, event):
         filename = self.getfilename()
         if not filename:
-            return
+            return 'break'
         if not self.checksyntax(filename):
-            return
+            return 'break'
         if not self.tabnanny(filename):
-            return
+            return 'break'
 
     def tabnanny(self, filename):
         f = open(filename, 'r')
@@ -136,12 +136,12 @@
         """
         filename = self.getfilename()
         if not filename:
-            return
+            return 'break'
         code = self.checksyntax(filename)
         if not code:
-            return
+            return 'break'
         if not self.tabnanny(filename):
-            return
+            return 'break'
         shell = self.shell
         interp = shell.interp
         if PyShell.use_subprocess:
@@ -164,6 +164,7 @@
         #         go to __stderr__.  With subprocess, they go to the shell.
         #         Need to change streams in PyShell.ModifiedInterpreter.
         interp.runcode(code)
+        return 'break'
 
     def getfilename(self):
         """Get source filename.  If not saved, offer to save (or create) file