diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp
index dbbc7d46a13561e285b6415df80ad60ac437e6ad..19de44a0d0c4fbb7c130f67aa299f35d856cf3b6 100644
--- a/src/xercesc/validators/schema/TraverseSchema.cpp
+++ b/src/xercesc/validators/schema/TraverseSchema.cpp
@@ -4404,6 +4404,12 @@ bool TraverseSchema::traverseIdentityConstraint(IdentityConstraint* const ic,
     unsigned int startIndex = 0;
     	
     while (startIndex < xpathLen) {
+        if(XMLChar1_0::isWhitespace(*(xpathExpr+startIndex)))
+        {
+            fBuffer.append(xpathExpr + startIndex, 1);
+            startIndex++;
+            continue;
+        }
 
         if (!XMLString::startsWith(xpathExpr + startIndex, fgForwardSlash)
             && !XMLString::startsWith(xpathExpr + startIndex, fgDot)) {