Whoops!  One the "redundant" initializations removed by Vladimir in
the previous patch wasn't -- there was a path through the code that
bypassed all initializations.  Thanks to Just for reporting the bug!
diff --git a/Python/ceval.c b/Python/ceval.c
index e366072..bcc2288 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -364,7 +364,7 @@
 	register PyObject *t;
 	register PyFrameObject *f; /* Current frame */
 	register PyObject **fastlocals;
-	PyObject *retval;	/* Return value */
+	PyObject *retval = NULL;	/* Return value */
 	PyThreadState *tstate = PyThreadState_Get();
 	unsigned char *first_instr;
 #ifdef LLTRACE
@@ -1769,7 +1769,7 @@
 			if (tstate->sys_profilefunc)
 				call_exc_trace(&tstate->sys_profilefunc,
 					       (PyObject**)0, f);
-}
+		}
 		
 		/* For the rest, treat WHY_RERAISE as WHY_EXCEPTION */