diff --git a/src/xercesc/util/Base64.cpp b/src/xercesc/util/Base64.cpp
index c21c72e25d2ec062bc3f8e4458140f70cf74d5ed..7c75f7dad2c603ae6f84a1e56e6ab02042193409 100644
--- a/src/xercesc/util/Base64.cpp
+++ b/src/xercesc/util/Base64.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.8  2003/01/27 21:15:56  peiyongz
+ * only zero or one space allowed in between B64 character.
+ *
  * Revision 1.7  2002/12/20 22:10:20  tng
  * XML 1.1
  *
@@ -333,10 +336,22 @@ XMLByte* Base64::decode(const XMLByte* const inputData,
 
     int inputIndex = 0;
     int rawInputLength = 0;
+    bool inWhiteSpace = false;
+
     while ( inputIndex < inputLength )
     {
         if (!XMLChar1_0::isWhitespace(inputData[inputIndex]))
+        {
             rawInputData[ rawInputLength++ ] = inputData[ inputIndex ];
+            inWhiteSpace = false;
+        }
+        else
+        {
+            if (inWhiteSpace)
+                return 0; // more than 1 whitespaces encountered
+            else
+                inWhiteSpace = true;
+        }
 
         inputIndex++;
     }