diff --git a/src/xercesc/internal/DGXMLScanner.cpp b/src/xercesc/internal/DGXMLScanner.cpp
index 563e4cb713c89b9f4e24cf2c6659a58ad8706977..5b3dc2bef7df6e5d6e7d3b4ca4cdc1bebcaa3012 100644
--- a/src/xercesc/internal/DGXMLScanner.cpp
+++ b/src/xercesc/internal/DGXMLScanner.cpp
@@ -170,11 +170,15 @@ DGXMLScanner::~DGXMLScanner()
 // ---------------------------------------------------------------------------
 NameIdPool<DTDEntityDecl>* DGXMLScanner::getEntityDeclPool()
 {
+    if(!fGrammar)
+        return 0;
     return ((DTDGrammar*)fGrammar)->getEntityDeclPool();
 }
 
 const NameIdPool<DTDEntityDecl>* DGXMLScanner::getEntityDeclPool() const
 {
+    if(!fGrammar)
+        return 0;
     return ((DTDGrammar*)fGrammar)->getEntityDeclPool();
 }
 
diff --git a/src/xercesc/internal/IGXMLScanner.cpp b/src/xercesc/internal/IGXMLScanner.cpp
index d8fbb79645886d3d1b360d8e351e7384fb2f04aa..a43cbd0db3190de9a3e1cb9df5044277d7ce1f45 100644
--- a/src/xercesc/internal/IGXMLScanner.cpp
+++ b/src/xercesc/internal/IGXMLScanner.cpp
@@ -180,11 +180,15 @@ IGXMLScanner::~IGXMLScanner()
 // ---------------------------------------------------------------------------
 NameIdPool<DTDEntityDecl>* IGXMLScanner::getEntityDeclPool()
 {
+    if(!fDTDGrammar)
+        return 0;
     return fDTDGrammar->getEntityDeclPool();
 }
 
 const NameIdPool<DTDEntityDecl>* IGXMLScanner::getEntityDeclPool() const
 {
+    if(!fDTDGrammar)
+        return 0;
     return fDTDGrammar->getEntityDeclPool();
 }