diff --git a/src/xercesc/validators/schema/identity/ValueStore.cpp b/src/xercesc/validators/schema/identity/ValueStore.cpp
index 1781efea2569373619f7c4698699fc7e8f76f692..8bac6d855d5bc94f1c2f798c229713c97a060dab 100644
--- a/src/xercesc/validators/schema/identity/ValueStore.cpp
+++ b/src/xercesc/validators/schema/identity/ValueStore.cpp
@@ -223,10 +223,10 @@ bool ValueStore::isDuplicateOf(DatatypeValidator* const dv1, const XMLCh* const
         return (XMLString::equals(val1, val2));
     }
 
-    unsigned int val1Len = XMLString::stringLen(val1);
-    unsigned int val2Len = XMLString::stringLen(val2);
+    bool val1IsEmpty = (val1==0 || *val1==0);
+    bool val2IsEmpty = (val2==0 || *val2==0);
 
-    if (!val1Len && !val2Len) {
+    if (val1IsEmpty && val2IsEmpty) {
 
         if (dv1 == dv2) {
             return true;
@@ -235,7 +235,7 @@ bool ValueStore::isDuplicateOf(DatatypeValidator* const dv1, const XMLCh* const
         return false;
     }
 
-    if (!val1Len || !val2Len) {
+    if (val1IsEmpty || val2IsEmpty) {
         return false;
     }