diff --git a/src/xercesc/internal/IGXMLScanner2.cpp b/src/xercesc/internal/IGXMLScanner2.cpp
index 255f9ec3178d1f75d225e6d5b8029bea16f8e2da..ec14d7fd1da3f8a34fa94e3c7a2c6481ef4d8641 100644
--- a/src/xercesc/internal/IGXMLScanner2.cpp
+++ b/src/xercesc/internal/IGXMLScanner2.cpp
@@ -1283,7 +1283,13 @@ void IGXMLScanner::scanReset(const InputSource& src)
         fPSVIElement = new (fMemoryManager) PSVIElement(fMemoryManager);
 
     if (!fErrorStack)
+    {
         fErrorStack = new (fMemoryManager) ValueStackOf<bool>(8, fMemoryManager);
+    }
+    else
+    {
+        fErrorStack->removeAllElements();
+    }
 
     resetPSVIElemContext();