There was an error check in a loop in PythonCmd which called
PythonCmd_Error() but failed to return.  The error wasn't very likely
(only when we run out of memory) but since the check is there we might
as well return the error.  (I think that Barry introduced this buglet
when he added error checks everywhere.)
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 6d096a0..bf7501e 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1202,7 +1202,7 @@
 		PyObject *s = PyString_FromString(argv[i + 1]);
 		if (!s || PyTuple_SetItem(arg, i, s)) {
 			Py_DECREF(arg);
-			PythonCmd_Error(interp);
+			return PythonCmd_Error(interp);
 		}
 	}
 	res = PyEval_CallObject(func, arg);