diff --git a/src/xercesc/util/XMLString.cpp b/src/xercesc/util/XMLString.cpp
index 54c99f9ee2858c4be893558d3417913a9f221b27..aaff25c261463f5ee10bf25acc9be6b59327f837 100644
--- a/src/xercesc/util/XMLString.cpp
+++ b/src/xercesc/util/XMLString.cpp
@@ -1776,20 +1776,15 @@ void XMLString::removeChar(const XMLCh*     const srcString
                          ,       XMLBuffer&       dstBuffer)
 {
     const XMLCh* pszSrc = srcString;
+    XMLCh c;
 
     dstBuffer.reset();
 
-    while (*pszSrc) 
+    while (c=*pszSrc++) 
     {
-        if (*pszSrc == toRemove) 
-        { 
-            pszSrc++;
-        }
-        else 
-        {
-            dstBuffer.append(*pszSrc);
-            pszSrc++;
-        }
+        if (c != toRemove) 
+            dstBuffer.append(c);
+
     }
 }