diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index 23d0e2d..3bee0ac 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -357,7 +357,8 @@
 #endif
 
 static PyObject*
-call_with_frame(PyCodeObject *c, PyObject* func, PyObject* args)
+call_with_frame(PyCodeObject *c, PyObject* func, PyObject* args,
+                xmlparseobject *self)
 {
     PyThreadState *tstate = PyThreadState_GET();
     PyFrameObject *f;
@@ -379,6 +380,7 @@
     if (res == NULL) {
 	if (tstate->curexc_traceback == NULL)
 	    PyTraceBack_Here(f);
+        XML_StopParser(self->itself, XML_FALSE);
 #ifdef FIX_TRACE
 	if (trace_frame_exc(tstate, f) < 0) {
 	    return NULL;
@@ -453,7 +455,7 @@
     /* temp is now a borrowed reference; consider it unused. */
     self->in_callback = 1;
     temp = call_with_frame(getcode(CharacterData, "CharacterData", __LINE__),
-                           self->handlers[CharacterData], args);
+                           self->handlers[CharacterData], args, self);
     /* temp is an owned reference again, or NULL */
     self->in_callback = 0;
     Py_DECREF(args);
@@ -574,7 +576,7 @@
         /* Container is now a borrowed reference; ignore it. */
         self->in_callback = 1;
         rv = call_with_frame(getcode(StartElement, "StartElement", __LINE__),
-                             self->handlers[StartElement], args);
+                             self->handlers[StartElement], args, self);
         self->in_callback = 0;
         Py_DECREF(args);
         if (rv == NULL) {
@@ -601,7 +603,7 @@
         if (!args) { flag_error(self); return RETURN;} \
         self->in_callback = 1; \
         rv = call_with_frame(getcode(NAME,#NAME,__LINE__), \
-                             self->handlers[NAME], args); \
+                             self->handlers[NAME], args, self); \
         self->in_callback = 0; \
         Py_DECREF(args); \
         if (rv == NULL) { \
@@ -758,7 +760,7 @@
         }
         self->in_callback = 1;
         rv = call_with_frame(getcode(ElementDecl, "ElementDecl", __LINE__),
-                             self->handlers[ElementDecl], args);
+                             self->handlers[ElementDecl], args, self);
         self->in_callback = 0;
         if (rv == NULL) {
             flag_error(self);
