Jim Fulton writes:

"""
I had originally not realized that PyEval_GetGlobals did not
INCREF it's return value.  The fix is to add the INCREF,
as shown below.
"""
diff --git a/Python/import.c b/Python/import.c
index 0bf5d47..2707019 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1858,6 +1858,7 @@
 	/* Get the builtins from current globals */
 	globals = PyEval_GetGlobals();
 	if(globals != NULL) {
+	        Py_INCREF(globals);
 		builtins = PyObject_GetItem(globals, builtins_str);
 		if (builtins == NULL)
 			goto err;