diff --git a/src/xercesc/dom/impl/DOMStringPool.cpp b/src/xercesc/dom/impl/DOMStringPool.cpp
index 0892c4d40bc9681ff77314c7ef5063f564c116a9..fbc81785ec2384523cfad699921aa128df8c0457 100644
--- a/src/xercesc/dom/impl/DOMStringPool.cpp
+++ b/src/xercesc/dom/impl/DOMStringPool.cpp
@@ -209,7 +209,7 @@ void DOMBuffer::expandCapacity(const unsigned int extraNeeded)
 {
     //not enough room. Calc new capacity and allocate new buffer
     const unsigned int newCap = (unsigned int)((fIndex + extraNeeded) * 1.25);
-    XMLCh* newBuf = new (fDoc) XMLCh[newCap+1];
+    XMLCh* newBuf = (XMLCh*) fDoc->allocate((newCap+1)*sizeof(XMLCh));
 
     // Copy over the old stuff
     memcpy(newBuf, fBuffer, fCapacity * sizeof(XMLCh));