diff -r e6cfbc3e2ed9 Modules/_tkinter.c --- a/Modules/_tkinter.c Thu Sep 04 09:53:16 2014 +0200 +++ b/Modules/_tkinter.c Thu Sep 04 09:58:37 2014 +0200 @@ -1243,8 +1243,10 @@ Tkapp_Call(PyObject *selfptr, PyObject * Tkapp_CallEvent *ev; Tcl_Condition cond = NULL; PyObject *exc_type, *exc_value, *exc_tb; - if (!WaitForMainloop(self)) + if (!WaitForMainloop(self)) { + assert(PyErr_Occurred()); return NULL; + } ev = (Tkapp_CallEvent*)ckalloc(sizeof(Tkapp_CallEvent)); ev->ev.proc = (Tcl_EventProc*)Tkapp_CallProc; ev->self = self; @@ -1262,6 +1264,7 @@ Tkapp_Call(PyObject *selfptr, PyObject * PyErr_Restore(exc_type, exc_value, exc_tb); else PyErr_SetObject(Tkinter_TclError, exc_value); + assert(PyErr_Occurred()); } Tcl_ConditionFinalize(&cond); } @@ -1270,8 +1273,10 @@ Tkapp_Call(PyObject *selfptr, PyObject * { objv = Tkapp_CallArgs(args, objStore, &objc); - if (!objv) + if (!objv) { + assert(PyErr_Occurred()); return NULL; + } ENTER_TCL @@ -1281,8 +1286,10 @@ Tkapp_Call(PyObject *selfptr, PyObject * if (i == TCL_ERROR) Tkinter_Error(selfptr); - else + else { res = Tkapp_CallResult(self); + assert(res != NULL || PyErr_Occurred()); + } LEAVE_OVERLAP_TCL