updated for version 7.3.1312
Problem:    Not giving correct error messages for SystemExit().
Solution:   Move E858 into an else. (Ken Takata)
diff --git a/src/if_py_both.h b/src/if_py_both.h
index 7253fc7..a9fe505 100644
--- a/src/if_py_both.h
+++ b/src/if_py_both.h
@@ -5103,14 +5103,17 @@
     run_ret = PyRun_String((char *)cmd, Py_eval_input, globals, globals);
     if (run_ret == NULL)
     {
-	if (PyErr_ExceptionMatches(PyExc_SystemExit))
+	if (PyErr_Occurred() && PyErr_ExceptionMatches(PyExc_SystemExit))
 	{
 	    EMSG2(_(e_py_systemexit), "python");
 	    PyErr_Clear();
 	}
-	if (PyErr_Occurred() && !msg_silent)
-	    PyErr_PrintEx(0);
-	EMSG(_("E858: Eval did not return a valid python object"));
+	else
+	{
+	    if (PyErr_Occurred() && !msg_silent)
+		PyErr_PrintEx(0);
+	    EMSG(_("E858: Eval did not return a valid python object"));
+	}
     }
     else
     {
diff --git a/src/version.c b/src/version.c
index 98b64d1..4d9af68 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1312,
+/**/
     1311,
 /**/
     1310,