diff --git a/Include/pydebug.h b/Include/pydebug.h
index f49a98e..db3b656 100644
--- a/Include/pydebug.h
+++ b/Include/pydebug.h
@@ -8,6 +8,7 @@
 PyAPI_DATA(int) Py_DebugFlag;
 PyAPI_DATA(int) Py_VerboseFlag;
 PyAPI_DATA(int) Py_InteractiveFlag;
+PyAPI_DATA(int) Py_InspectFlag;
 PyAPI_DATA(int) Py_OptimizeFlag;
 PyAPI_DATA(int) Py_NoSiteFlag;
 PyAPI_DATA(int) Py_UseClassExceptionsFlag;
diff --git a/Misc/NEWS b/Misc/NEWS
index aeae507..a783add 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,11 @@
 Core and builtins
 -----------------
 
+- Variant of patch #697613: don't exit the interpreter on a SystemExit
+  exception if the -i command line option or PYTHONINSPECT environment
+  variable is given, but break into the interactive interpreter just like
+  on other exceptions or normal program exit.
+
 - Patch #1638879: don't accept strings with embedded NUL bytes in long().
 
 - Bug #1674503: close the file opened by execfile() in an error condition.
diff --git a/Modules/main.c b/Modules/main.c
index 7594a76..2dbdfe9 100644
--- a/Modules/main.c
+++ b/Modules/main.c
@@ -216,13 +216,11 @@
 	char *module = NULL;
 	FILE *fp = stdin;
 	char *p;
-	int inspect = 0;
 	int unbuffered = 0;
 	int skipfirstline = 0;
 	int stdin_is_interactive = 0;
 	int help = 0;
 	int version = 0;
-	int saw_inspect_flag = 0;
 	int saw_unbuffered_flag = 0;
 	PyCompilerFlags cf;
 
@@ -297,8 +295,7 @@
 			/* NOTREACHED */
 
 		case 'i':
-			inspect++;
-			saw_inspect_flag = 1;
+			Py_InspectFlag++;
 			Py_InteractiveFlag++;
 			break;
 
@@ -369,9 +366,9 @@
 		return 0;
 	}
 
-	if (!saw_inspect_flag &&
+	if (!Py_InspectFlag &&
 	    (p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
-		inspect = 1;
+		Py_InspectFlag = 1;
 	if (!saw_unbuffered_flag &&
 	    (p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0')
 		unbuffered = 1;
@@ -499,7 +496,7 @@
 
 	PySys_SetArgv(argc-_PyOS_optind, argv+_PyOS_optind);
 
-	if ((inspect || (command == NULL && filename == NULL && module == NULL)) &&
+	if ((Py_InspectFlag || (command == NULL && filename == NULL && module == NULL)) &&
 	    isatty(fileno(stdin))) {
 		PyObject *v;
 		v = PyImport_ImportModule("readline");
@@ -518,6 +515,7 @@
 	}
 	else {
 		if (filename == NULL && stdin_is_interactive) {
+			Py_InspectFlag = 0; /* do exit on SystemExit */
 			RunStartupFile(&cf);
 		}
 		/* XXX */
@@ -530,16 +528,18 @@
 	/* Check this environment variable at the end, to give programs the
 	 * opportunity to set it from Python.
 	 */
-	if (!saw_inspect_flag &&
+	if (!Py_InspectFlag &&
 	    (p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
 	{
-		inspect = 1;
+		Py_InspectFlag = 1;
 	}
 
-	if (inspect && stdin_is_interactive &&
-	    (filename != NULL || command != NULL || module != NULL))
+	if (Py_InspectFlag && stdin_is_interactive &&
+	    (filename != NULL || command != NULL || module != NULL)) {
+		Py_InspectFlag = 0;
 		/* XXX */
 		sts = PyRun_AnyFileFlags(stdin, "<stdin>", &cf) != 0;
+	}
 
 	WaitForThreadShutdown();
 
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 3d0c68f..aa7e624 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -69,6 +69,7 @@
 int Py_DebugFlag; /* Needed by parser.c */
 int Py_VerboseFlag; /* Needed by import.c */
 int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
+int Py_InspectFlag; /* Needed to determine whether to exit at SystemError */
 int Py_NoSiteFlag; /* Suppress 'import site' */
 int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
 int Py_FrozenFlag; /* Needed by getpath.c */
@@ -1019,6 +1020,11 @@
 	PyObject *exception, *value, *tb;
 	int exitcode = 0;
 
+	if (Py_InspectFlag)
+		/* Don't exit if -i flag was given. This flag is set to 0
+		 * when entering interactive mode for inspecting. */
+		return;
+
 	PyErr_Fetch(&exception, &value, &tb);
 	if (Py_FlushLine())
 		PyErr_Clear();
