diff --git a/src/xercesc/util/QName.cpp b/src/xercesc/util/QName.cpp
index 9d34e9c36fb40e590ae4604010989af04f9e5beb..cf30c351a71792f4a081643883875bbd2e42811d 100644
--- a/src/xercesc/util/QName.cpp
+++ b/src/xercesc/util/QName.cpp
@@ -323,20 +323,7 @@ void QName::setName(const XMLCh* const    rawName
 
 void QName::setPrefix(const XMLCh* prefix)
 {
-    unsigned int newLen;
-
-    newLen = XMLString::stringLen(prefix);
-    if (!fPrefixBufSz || (newLen > fPrefixBufSz))
-    {
-        fMemoryManager->deallocate(fPrefix); //delete [] fPrefix;
-        fPrefix = 0;
-        fPrefixBufSz = newLen + 8;
-        fPrefix = (XMLCh*) fMemoryManager->allocate
-        (
-            (fPrefixBufSz + 1) * sizeof(XMLCh)
-        ); //new XMLCh[fPrefixBufSz + 1];
-    }
-    XMLString::moveChars(fPrefix, prefix, newLen + 1);
+    setNPrefix(prefix, XMLString::stringLen(prefix));
 }
 
 void QName::setNPrefix(const XMLCh* prefix, const unsigned int newLen)