diff --git a/src/xercesc/parsers/AbstractDOMParser.cpp b/src/xercesc/parsers/AbstractDOMParser.cpp
index 6c62a6ac6e179433934fcb11ee85f6465047c2ac..2e1610d8db9672bd2a802fc7f1db87ebf633d1e6 100644
--- a/src/xercesc/parsers/AbstractDOMParser.cpp
+++ b/src/xercesc/parsers/AbstractDOMParser.cpp
@@ -218,8 +218,8 @@ void AbstractDOMParser::resetPool()
     if (fDocumentVector)
         fDocumentVector->removeAllElements();
 
-     if (!fDocumentAdoptedByUser)
-       delete fDocument;
+    if (!fDocumentAdoptedByUser && fDocument)
+        fDocument->release();
 
     fDocument = 0;
 }