diff --git a/src/xercesc/util/XMLStringTokenizer.cpp b/src/xercesc/util/XMLStringTokenizer.cpp
index 557fd3fb46161b8b6cac366bf157bc4c0279378d..30ab4da4fd12fb0ada5ffdc21643fe50bab4f1ce 100644
--- a/src/xercesc/util/XMLStringTokenizer.cpp
+++ b/src/xercesc/util/XMLStringTokenizer.cpp
@@ -47,7 +47,7 @@ XMLStringTokenizer::XMLStringTokenizer( const XMLCh* const srcStr
     : fOffset(0)
     , fStringLen(XMLString::stringLen(srcStr))
     , fString(XMLString::replicate(srcStr, manager))
-    , fDelimeters(XMLString::replicate(fgDelimeters, manager))
+    , fDelimeters(fgDelimeters)
     , fTokens(0)
     , fMemoryManager(manager)
 {
@@ -103,6 +103,18 @@ XMLStringTokenizer::~XMLStringTokenizer()
 	cleanUp();
 }
 
+// ---------------------------------------------------------------------------
+//  XMLStringTokenizer: CleanUp methods
+// ---------------------------------------------------------------------------
+void XMLStringTokenizer::cleanUp() {
+
+	fMemoryManager->deallocate(fString);//delete [] fString;
+    if (fDelimeters != fgDelimeters) {
+        fMemoryManager->deallocate((void*)fDelimeters);//delete [] fDelimeters;
+    }
+    delete fTokens;
+}
+
 
 // ---------------------------------------------------------------------------
 //  XMLStringTokenizer: Management methods
diff --git a/src/xercesc/util/XMLStringTokenizer.hpp b/src/xercesc/util/XMLStringTokenizer.hpp
index 67ed0c1e2fd46b931b706fb140dbf24273cbd595..89e8e0462bbbd0aed80979c21d35291855f37a31 100644
--- a/src/xercesc/util/XMLStringTokenizer.hpp
+++ b/src/xercesc/util/XMLStringTokenizer.hpp
@@ -160,22 +160,11 @@ private:
     int                 fOffset;
     int                 fStringLen;
 	XMLCh*              fString;
-    XMLCh*              fDelimeters;
+    const XMLCh*        fDelimeters;
 	RefArrayVectorOf<XMLCh>* fTokens;
     MemoryManager*           fMemoryManager;
 };
 
-
-// ---------------------------------------------------------------------------
-//  XMLStringTokenizer: CleanUp methods
-// ---------------------------------------------------------------------------
-inline void XMLStringTokenizer::cleanUp() {
-
-	fMemoryManager->deallocate(fString);//delete [] fString;
-    fMemoryManager->deallocate(fDelimeters);//delete [] fDelimeters;
-    delete fTokens;
-}
-
 // ---------------------------------------------------------------------------
 //  XMLStringTokenizer: Helper methods
 // ---------------------------------------------------------------------------