diff --git a/src/xercesc/internal/XMLScanner.cpp b/src/xercesc/internal/XMLScanner.cpp
index df2f9b7a9398f1c8f9f7d05b7f11d51552369312..5eda4a8efaccbb39f1b94396793233015677beb9 100644
--- a/src/xercesc/internal/XMLScanner.cpp
+++ b/src/xercesc/internal/XMLScanner.cpp
@@ -1118,13 +1118,9 @@ void XMLScanner::emitError(const XMLErrs::Codes toEmit)
         const unsigned int msgSize = 1023;
         XMLCh errText[msgSize + 1];
 
-        // Lock the mutex and load the text
+        if (!gMsgLoader->loadMsg(toEmit, errText, msgSize))
         {
-            XMLMutexLock lockInit(&gScannerMutex());
-            if (!gMsgLoader->loadMsg(toEmit, errText, msgSize))
-            {
                 // <TBD> Probably should load a default msg here
-            }
         }
 
         //
@@ -1173,13 +1169,9 @@ void XMLScanner::emitError( const   XMLErrs::Codes    toEmit
         const unsigned int maxChars = 2047;
         XMLCh errText[maxChars + 1];
 
-        // Lock the mutex and load the text
+        if (!gMsgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
         {
-            XMLMutexLock lockInit(&gScannerMutex());
-            if (!gMsgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
-            {
                 // <TBD> Should probably load a default message here
-            }
         }
 
         //
@@ -1228,13 +1220,9 @@ void XMLScanner::emitError( const   XMLErrs::Codes    toEmit
         const unsigned int maxChars = 2047;
         XMLCh errText[maxChars + 1];
 
-        // Lock the mutex and load the text
+        if (!gMsgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
         {
-            XMLMutexLock lockInit(&gScannerMutex());
-            if (!gMsgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
-            {
                 // <TBD> Should probably load a default message here
-            }
         }
 
         //
diff --git a/src/xercesc/validators/schema/XSDErrorReporter.cpp b/src/xercesc/validators/schema/XSDErrorReporter.cpp
index 0575724332ed951e5737e5a98f1aab6d908d43fc..c8febbca31152673fcc4a5bec64f18e107af0ad9 100644
--- a/src/xercesc/validators/schema/XSDErrorReporter.cpp
+++ b/src/xercesc/validators/schema/XSDErrorReporter.cpp
@@ -56,6 +56,9 @@
 
 /**
   * $Log$
+  * Revision 1.5  2002/11/15 21:58:04  peiyongz
+  * Leave thread safety issue to message loader
+  *
   * Revision 1.4  2002/11/04 14:49:42  tng
   * C++ Namespace Support.
   *
@@ -211,14 +214,9 @@ void XSDErrorReporter::emitError(const unsigned int toEmit,
         msgLoader = gValidMsgLoader;
     }
 
-    // Lock the mutex and load the text
+    if (!msgLoader->loadMsg(toEmit, errText, msgSize))
     {
-        XMLMutexLock lockInit(&gErrMsgMutex());
-
-        if (!msgLoader->loadMsg(toEmit, errText, msgSize))
-        {
                 // <TBD> Should probably load a default message here
-        }
     }
 
     if (fErrorReporter)
@@ -258,14 +256,9 @@ void XSDErrorReporter::emitError(const unsigned int toEmit,
         msgLoader = gValidMsgLoader;
     }
 
-    // Lock the mutex and load the text
+    if (!msgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
     {
-        XMLMutexLock lockInit(&gErrMsgMutex());
-
-        if (!msgLoader->loadMsg(toEmit, errText, maxChars, text1, text2, text3, text4))
-        {
                 // <TBD> Should probably load a default message here
-        }
     }
 
     if (fErrorReporter)