Applied patch for bug # 620106.
diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c
index b834d1a..0dcf61d 100644
--- a/expat/lib/xmlparse.c
+++ b/expat/lib/xmlparse.c
@@ -617,7 +617,16 @@
 #define paramEntityParsing (parser->m_paramEntityParsing)
 #endif /* XML_DTD */
 
-#define parsing (processor != prologInitProcessor)
+#define parsing \
+  (parentParser \
+    ? \
+    (isParamEntity \
+      ? \
+      (processor != externalParEntInitProcessor) \
+      : \
+      (processor != externalEntityInitProcessor)) \
+    : \
+    (processor != prologInitProcessor))
 
 XML_Parser
 XML_ParserCreate(const XML_Char *encodingName)