diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp
index 14c46deef0c8f9aab7c42d897c32b6c389085e30..2e528b264a6905d7219c92617a4fa249cf7b415a 100644
--- a/src/xercesc/validators/schema/TraverseSchema.cpp
+++ b/src/xercesc/validators/schema/TraverseSchema.cpp
@@ -987,7 +987,7 @@ TraverseSchema::traverseSimpleTypeDecl(const DOMElement* const childElem,
     fBuffer.append(chComma);
     fBuffer.append(name);
 
-    int    fullTypeNameId = fStringPool->addOrFind(fBuffer.getRawBuffer());
+    unsigned int fullTypeNameId = fStringPool->addOrFind(fBuffer.getRawBuffer());
     const XMLCh* fullName = fStringPool->getValueForId(fullTypeNameId);
 
     //check if we have already traversed the same simpleType decl