diff --git a/src/xercesc/dom/impl/DOMStringPool.cpp b/src/xercesc/dom/impl/DOMStringPool.cpp
index 7db164d1e51b616315a77cffa32ef8651cba4d13..3780733201ca22d3670eeba78a9e56942a38fe41 100644
--- a/src/xercesc/dom/impl/DOMStringPool.cpp
+++ b/src/xercesc/dom/impl/DOMStringPool.cpp
@@ -191,6 +191,9 @@ void DOMBuffer::append(const XMLCh* const chars, const unsigned int count)
         expandCapacity(actualCount);
     memcpy(&fBuffer[fIndex], chars, actualCount * sizeof(XMLCh));
     fIndex += actualCount;
+
+    // Keep it null terminated
+    fBuffer[fIndex] = 0;
 }
 
 void DOMBuffer::set(const XMLCh* const chars, const unsigned int count)
@@ -203,6 +206,9 @@ void DOMBuffer::set(const XMLCh* const chars, const unsigned int count)
         expandCapacity(actualCount);
     memcpy(fBuffer, chars, actualCount * sizeof(XMLCh));
     fIndex = actualCount;
+
+    // Keep it null terminated
+    fBuffer[fIndex] = 0;
 }