Keep IDLE from displaying spurious SystemExit tracebacks
when running scripts that terminated by raising SystemExit
(i.e. unittest and turtledemo).
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index acae3ae..e82ebf4 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -301,11 +301,14 @@
                 exec code in self.locals
             finally:
                 interruptable = False
+        except SystemExit:
+            # Scripts that raise SystemExit should just
+            # return to the interactive prompt
+            pass
         except:
             self.usr_exc_info = sys.exc_info()
             if quitting:
                 exit()
-            # even print a user code SystemExit exception, continue
             print_exception()
             jit = self.rpchandler.console.getvar("<<toggle-jit-stack-viewer>>")
             if jit:
diff --git a/Misc/NEWS b/Misc/NEWS
index 92bd686..71db196 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -205,6 +205,9 @@
 - Issue #7358: cStringIO.StringIO now supports writing to and reading from
   a stream larger than 2 GiB on 64-bit systems.
 
+- IDLE was displaying spurious SystemExit tracebacks when running scripts
+  that terminated by raising SystemExit (i.e. unittest and turtledemo).
+
 - Issue #10355: In SpooledTemporaryFile class mode and name properties and
   xreadlines method now work for unrolled files.  encoding and newlines
   properties now removed as they have no sense and always produced