diff --git a/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.cpp b/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.cpp
index ec1ee2dad2825a77d33b63f13a404adde21a9f28..99b072e96a2d5ebd2007066374b5560ffce67259 100644
--- a/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.cpp
+++ b/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.19  2003/12/17 03:56:15  neilg
+ * add default memory manager parameter to loadMsg method that uses char * parameters
+ *
  * Revision 1.18  2003/11/19 23:08:02  peiyongz
  * build xercesc2_4_0
  *
@@ -399,7 +402,8 @@ bool ICUMsgLoader::loadMsg( const   XMLMsgLoader::XMLMsgId  msgToLoad
                             , const char* const             repText1
                             , const char* const             repText2
                             , const char* const             repText3
-                            , const char* const             repText4)
+                            , const char* const             repText4
+                            , MemoryManager * const manager)
 {
     //
     //  Transcode the provided parameters and call the other version,
@@ -409,27 +413,28 @@ bool ICUMsgLoader::loadMsg( const   XMLMsgLoader::XMLMsgId  msgToLoad
     XMLCh* tmp2 = 0;
     XMLCh* tmp3 = 0;
     XMLCh* tmp4 = 0;
+    MemoryManager *managerToUse = (manager)?manager:XMLPlatformUtils::fgMemoryManager;
 
     bool bRet = false;
     if (repText1)
-        tmp1 = XMLString::transcode(repText1, XMLPlatformUtils::fgMemoryManager);
+        tmp1 = XMLString::transcode(repText1, managerToUse);
     if (repText2)
-        tmp2 = XMLString::transcode(repText2, XMLPlatformUtils::fgMemoryManager);
+        tmp2 = XMLString::transcode(repText2, managerToUse);
     if (repText3)
-        tmp3 = XMLString::transcode(repText3, XMLPlatformUtils::fgMemoryManager);
+        tmp3 = XMLString::transcode(repText3, managerToUse);
     if (repText4)
-        tmp4 = XMLString::transcode(repText4, XMLPlatformUtils::fgMemoryManager);
+        tmp4 = XMLString::transcode(repText4, managerToUse);
 
     bRet = loadMsg(msgToLoad, toFill, maxChars, tmp1, tmp2, tmp3, tmp4);
 
     if (tmp1)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp1);//delete [] tmp1;
+        managerToUse->deallocate(tmp1);//delete [] tmp1;
     if (tmp2)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp2);//delete [] tmp2;
+        managerToUse->deallocate(tmp2);//delete [] tmp2;
     if (tmp3)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp3);//delete [] tmp3;
+        managerToUse->deallocate(tmp3);//delete [] tmp3;
     if (tmp4)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp4);//delete [] tmp4;
+        managerToUse->deallocate(tmp4);//delete [] tmp4;
 
     return bRet;
 }
diff --git a/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp b/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp
index bfc77545cead80e1b88b1717cd709fbf407c1315..466eebd5db74337e4b33a9b9d801c2d4e5bcd97e 100644
--- a/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp
+++ b/src/xercesc/util/MsgLoaders/ICU/ICUMsgLoader.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.7  2003/12/17 03:56:15  neilg
+ * add default memory manager parameter to loadMsg method that uses char * parameters
+ *
  * Revision 1.6  2003/05/15 18:29:48  knoaman
  * Partial implementation of the configurable memory manager.
  *
@@ -153,6 +156,7 @@ public :
         , const char* const             repText2 = 0
         , const char* const             repText3 = 0
         , const char* const             repText4 = 0
+        , MemoryManager * const manager = 0
     );
 
 
diff --git a/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp b/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
index 3c2d69676a93fec7b5e1b99e0df1d728a3837f10..5b9e6e5d452e75d430908e88397f149ce763a6cc 100644
--- a/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
+++ b/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.9  2003/12/17 03:56:15  neilg
+ * add default memory manager parameter to loadMsg method that uses char * parameters
+ *
  * Revision 1.8  2003/05/15 18:29:49  knoaman
  * Partial implementation of the configurable memory manager.
  *
@@ -221,7 +224,8 @@ bool InMemMsgLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad
                             , const char* const             repText1
                             , const char* const             repText2
                             , const char* const             repText3
-                            , const char* const             repText4)
+                            , const char* const             repText4
+                            , MemoryManager * const manager) 
 {
     //
     //  Transcode the provided parameters and call the other version,
@@ -231,27 +235,28 @@ bool InMemMsgLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad
     XMLCh* tmp2 = 0;
     XMLCh* tmp3 = 0;
     XMLCh* tmp4 = 0;
+    MemoryManager *managerToUse = (manager)?manager:XMLPlatformUtils::fgMemoryManager;
 
     bool bRet = false;
     if (repText1)
-        tmp1 = XMLString::transcode(repText1, XMLPlatformUtils::fgMemoryManager);
+        tmp1 = XMLString::transcode(repText1, managerToUse);
     if (repText2)
-        tmp2 = XMLString::transcode(repText2, XMLPlatformUtils::fgMemoryManager);
+        tmp2 = XMLString::transcode(repText2, managerToUse);
     if (repText3)
-        tmp3 = XMLString::transcode(repText3, XMLPlatformUtils::fgMemoryManager);
+        tmp3 = XMLString::transcode(repText3, managerToUse);
     if (repText4)
-        tmp4 = XMLString::transcode(repText4, XMLPlatformUtils::fgMemoryManager);
+        tmp4 = XMLString::transcode(repText4, managerToUse);
 
     bRet = loadMsg(msgToLoad, toFill, maxChars, tmp1, tmp2, tmp3, tmp4);
 
     if (tmp1)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp1);//delete [] tmp1;
+        managerToUse->deallocate(tmp1);//delete [] tmp1;
     if (tmp2)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp2);//delete [] tmp2;
+        managerToUse->deallocate(tmp2);//delete [] tmp2;
     if (tmp3)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp3);//delete [] tmp3;
+        managerToUse->deallocate(tmp3);//delete [] tmp3;
     if (tmp4)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp4);//delete [] tmp4;
+        managerToUse->deallocate(tmp4);//delete [] tmp4;
 
     return bRet;
 }
diff --git a/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp b/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp
index 2a0878c54b116299a92f6207fd6b89184f51bd51..01496fd55b9ab057236c8490d6a6bb90f22714b5 100644
--- a/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp
+++ b/src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.4  2003/12/17 03:56:15  neilg
+ * add default memory manager parameter to loadMsg method that uses char * parameters
+ *
  * Revision 1.3  2003/03/07 18:15:44  tng
  * Return a reference instead of void for operator=
  *
@@ -140,6 +143,7 @@ public :
         , const char* const             repText2 = 0
         , const char* const             repText3 = 0
         , const char* const             repText4 = 0
+        , MemoryManager * const manager = 0
     );
 
 
diff --git a/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp b/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp
index 5da56823c6788f1bf52a695ce26bd167fabdedbb..22ac3a818ffe53a6ec6c15f770f1af2bb003820a 100644
--- a/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp
+++ b/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.16  2003/12/17 03:56:15  neilg
+ * add default memory manager parameter to loadMsg method that uses char * parameters
+ *
  * Revision 1.15  2003/08/21 16:36:08  peiyongz
  * use PlatformUtils::panic()
  *
@@ -282,7 +285,8 @@ bool MsgCatalogLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad
                             , const char* const             repText1
                             , const char* const             repText2
                             , const char* const             repText3
-                            , const char* const             repText4)
+                            , const char* const             repText4
+                            , MemoryManager * const manager) 
 {
     //
     //  Transcode the provided parameters and call the other version,
@@ -292,27 +296,28 @@ bool MsgCatalogLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad
     XMLCh* tmp2 = 0;
     XMLCh* tmp3 = 0;
     XMLCh* tmp4 = 0;
+    MemoryManager *managerOoUse = (manager)?manager:XMLPlatformUtils::fgMemoryManager;
 
     bool bRet = false;
     if (repText1)
-        tmp1 = XMLString::transcode(repText1, XMLPlatformUtils::fgMemoryManager);
+        tmp1 = XMLString::transcode(repText1, managerToUse);
     if (repText2)
-        tmp2 = XMLString::transcode(repText2, XMLPlatformUtils::fgMemoryManager);
+        tmp2 = XMLString::transcode(repText2, managerToUse);
     if (repText3)
-        tmp3 = XMLString::transcode(repText3, XMLPlatformUtils::fgMemoryManager);
+        tmp3 = XMLString::transcode(repText3, managerToUse);
     if (repText4)
-        tmp4 = XMLString::transcode(repText4, XMLPlatformUtils::fgMemoryManager);
+        tmp4 = XMLString::transcode(repText4, managerToUse);
 
     bRet = loadMsg(msgToLoad, toFill, maxChars, tmp1, tmp2, tmp3, tmp4);
 
     if (tmp1)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp1);//delete [] tmp1;
+        managerToUse->deallocate(tmp1);//delete [] tmp1;
     if (tmp2)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp2);//delete [] tmp2;
+        managerToUse->deallocate(tmp2);//delete [] tmp2;
     if (tmp3)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp3);//delete [] tmp3;
+        managerToUse->deallocate(tmp3);//delete [] tmp3;
     if (tmp4)
-        XMLPlatformUtils::fgMemoryManager->deallocate(tmp4);//delete [] tmp4;
+        managerToUse->deallocate(tmp4);//delete [] tmp4;
 
     return bRet;
 }
diff --git a/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp b/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp
index df794a4c4c35a9c3fca2296e6fa295e9efc74a02..65ad7f4e8dc3d7759054d7e6f50b4adcfd77b9fa 100644
--- a/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp
+++ b/src/xercesc/util/MsgLoaders/MsgCatalog/MsgCatalogLoader.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.6  2003/12/17 03:56:15  neilg
+ * add default memory manager parameter to loadMsg method that uses char * parameters
+ *
  * Revision 1.5  2003/03/07 18:15:44  tng
  * Return a reference instead of void for operator=
  *
@@ -140,6 +143,7 @@ public :
         , const char* const             repText2 = 0
         , const char* const             repText3 = 0
         , const char* const             repText4 = 0
+        , MemoryManager * const manager = 0
     );
 
 
diff --git a/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.cpp b/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.cpp
index e3fea7a6c7ad3057405b494c08cb1cd12d7dcaf5..6c0b4875401820773e796239f0b96cea6dbe17cc 100644
--- a/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.cpp
+++ b/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.cpp
@@ -231,7 +231,8 @@ bool MsgCatalogLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad
                             , const char* const            repText1
                             , const char* const            repText2
                             , const char* const            repText3
-                            , const char* const            repText4)
+                            , const char* const            repText4
+                            , MemoryManager * const manager)
 {
     char * msgId;
     int size=0;
@@ -251,6 +252,7 @@ bool MsgCatalogLoader::loadMsg(const  XMLMsgLoader::XMLMsgId  msgToLoad
         msgId = DOMMsg[msgToLoad - 2];
 
     // Call the other version to load up the message
+    // note that no one is deleting repTexts...
     if (!localMsg(msgId, toFill, maxChars, repTexts, size))
         return false;
 
diff --git a/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp b/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp
index f3c513021b8db55f5f3c20c72ac69fbcf69b8153..c6d7964f64b9a2f816b0bdb249d8bdc595c93677 100644
--- a/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp
+++ b/src/xercesc/util/MsgLoaders/MsgFile/MsgLoader.hpp
@@ -111,6 +111,7 @@ public :
         , const char* const             repText2 = 0
         , const char* const             repText3 = 0
         , const char* const             repText4 = 0
+        , MemoryManager * const manager = 0
     );