When PyInt_FromLong() returns NULL, you do not need to check
PyErr_Occurred().  Removed the extra test and setting of a
bogus exception.
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index 95a0980..ce66e5a 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -414,11 +414,9 @@
     PyObject *str = NULL;
     int len = -1;
 
-    if ((bytes = PyInt_FromLong(buf_size)) == NULL) {
-        if (!PyErr_Occurred())
-            PyErr_SetNone(PyExc_EOFError);
+    if ((bytes = PyInt_FromLong(buf_size)) == NULL)
         goto finally;
-    }
+
     if ((arg = PyTuple_New(1)) == NULL)
         goto finally;