Always test for an error return (usually NULL or -1) without setting
an exception.
diff --git a/Python/ceval.c b/Python/ceval.c
index f52eb0e..ef5bced 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1723,6 +1723,7 @@
 		if (why == WHY_NOT) {
 			if (err == 0 && x != NULL) {
 #ifdef CHECKEXC
+				/* This check is expensive! */
 				if (PyErr_Occurred())
 					fprintf(stderr,
 						"XXX undetected error\n");
@@ -1735,18 +1736,18 @@
 			err = 0;
 		}
 
-#ifdef CHECKEXC
 		/* Double-check exception status */
 		
 		if (why == WHY_EXCEPTION || why == WHY_RERAISE) {
 			if (!PyErr_Occurred()) {
-				fprintf(stderr, "XXX ghost error\n");
 				PyErr_SetString(PyExc_SystemError,
-						"ghost error");
+					"error return without exception set");
 				why = WHY_EXCEPTION;
 			}
 		}
+#ifdef CHECKEXC
 		else {
+			/* This check is expensive! */
 			if (PyErr_Occurred()) {
 				fprintf(stderr,
 					"XXX undetected error (why=%d)\n",