#18196: Avoid displaying spurious SystemExit tracebacks.
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index 88da23b..f5d260d 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -339,6 +339,10 @@
                 exec(code, 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:
diff --git a/Misc/NEWS b/Misc/NEWS
index cd76c4c..f3f2a1e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -81,6 +81,8 @@
 IDLE
 ----
 
+- Issue #18196: Avoid displaying spurious SystemExit tracebacks.
+
 - Issue #5492: Avoid traceback when exiting IDLE caused by a race condition.
 
 - Issue #17511: Keep IDLE find dialog open after clicking "Find Next".