diff --git a/Lib/idlelib/PyShell.py b/Lib/idlelib/PyShell.py
index ed353c9..a11eaa5 100644
--- a/Lib/idlelib/PyShell.py
+++ b/Lib/idlelib/PyShell.py
@@ -312,13 +312,14 @@
         InteractiveInterpreter.__init__(self, locals=locals)
         self.save_warnings_filters = None
         self.restarting = False
+        self.subprocess_arglist = self.build_subprocess_arglist()
 
     port = 8833
     rpcclt = None
     rpcpid = None
 
     def spawn_subprocess(self):
-        args = self.build_subprocess_arglist()
+        args = self.subprocess_arglist
         self.rpcpid = os.spawnv(os.P_NOWAIT, args[0], args)
 
     def build_subprocess_arglist(self):
@@ -326,10 +327,12 @@
         # Maybe IDLE is installed and is being accessed via sys.path,
         # or maybe it's not installed and the idle.py script is being
         # run from the IDLE source directory.
+        del_exitf = idleConf.GetOption('main', 'General', 'delete-exitfunc',
+                                       default=False, type='bool')
         if __name__ == 'idlelib.PyShell':
-            command = "__import__('idlelib.run').run.main()"
+            command = "__import__('idlelib.run').run.main(" + `del_exitf` +")"
         else:
-            command = "__import__('run').main()"
+            command = "__import__('run').main(" + `del_exitf` + ")"
         return [sys.executable] + w + ["-c", command, str(self.port)]
 
     def start_subprocess(self):
diff --git a/Lib/idlelib/config-main.def b/Lib/idlelib/config-main.def
index 1350d60..206c37f 100644
--- a/Lib/idlelib/config-main.def
+++ b/Lib/idlelib/config-main.def
@@ -43,6 +43,7 @@
 autosave= 0
 print-command-posix=lpr %s
 print-command-win=start /min notepad /p %s
+delete-exitfunc= 0
 
 [EditorWindow]
 width= 80
diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py
index abc9969..7d7a6e8 100644
--- a/Lib/idlelib/run.py
+++ b/Lib/idlelib/run.py
@@ -24,7 +24,7 @@
 exit_now = False
 quitting = False
 
-def main():
+def main(del_exitfunc=False):
     """Start the Python execution server in a subprocess
 
     In the Python subprocess, RPCServer is instantiated with handlerclass
@@ -44,6 +44,8 @@
     """
     global exit_now
     global quitting
+    global no_exitfunc
+    no_exitfunc = del_exitfunc
     port = 8833
     if sys.argv[1:]:
         port = int(sys.argv[1])
@@ -57,7 +59,7 @@
         try:
             if exit_now:
                 try:
-                    sys.exit(0)
+                    exit()
                 except KeyboardInterrupt:
                     # exiting but got an extra KBI? Try again!
                     continue
@@ -83,7 +85,7 @@
             except:
                 # Link didn't work, print same exception to __stderr__
                 traceback.print_exception(type, value, tb, file=sys.__stderr__)
-                sys.exit(0)
+                exit()
             else:
                 continue
 
@@ -159,6 +161,16 @@
     except (AttributeError, EOFError):
         pass
 
+def exit():
+    """Exit subprocess, possibly after first deleting sys.exitfunc
+
+    If config-main.cfg/.def 'General' 'delete-exitfunc' is True, then any
+    sys.exitfunc will be removed before exiting.  (VPython support)
+
+    """
+    if no_exitfunc:
+        del sys.exitfunc
+    sys.exit(0)
 
 class MyRPCServer(rpc.RPCServer):
 
@@ -186,7 +198,7 @@
             traceback.print_exc(file=erf)
             print>>erf, '\n*** Unrecoverable, server exiting!'
             print>>erf, '-'*40
-            sys.exit(0)
+            exit()
 
 
 class MyHandler(rpc.RPCHandler):
@@ -229,7 +241,7 @@
             exec code in self.locals
         except:
             if quitting:
-                sys.exit(0)
+                exit()
             # even print a user code SystemExit exception, continue
             print_exception()
         else:
