#9054: fix crash when using pyexpat with a system expat lib version 2.0.1.
diff --git a/Misc/NEWS b/Misc/NEWS
index abba90d..6f3d36f 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -66,6 +66,9 @@
 Extensions
 ----------
 
+- Issue #9054: Fix a crash occurring when using the pyexpat module
+  with expat version 2.0.1.
+
 - Issue #5355: Provide mappings from Expat error numbers to string
   descriptions and backwards, in order to actually make it possible
   to analyze error codes provided by ExpatError.
diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c
index a8b0f8f..5aadcc0 100644
--- a/Modules/pyexpat.c
+++ b/Modules/pyexpat.c
@@ -351,6 +351,9 @@
     PyObject *args;
     PyObject *temp;
 
+    if (!have_handler(self, CharacterData))
+        return -1;
+
     args = PyTuple_New(1);
     if (args == NULL)
         return -1;