diff --git a/src/xercesc/validators/schema/TraverseSchema.cpp b/src/xercesc/validators/schema/TraverseSchema.cpp
index 4022a9dca8a7ce27781819fb25d21914b7689466..47951784d2d3e84c8836df0a9c07c44e83d3bc42 100644
--- a/src/xercesc/validators/schema/TraverseSchema.cpp
+++ b/src/xercesc/validators/schema/TraverseSchema.cpp
@@ -3458,10 +3458,7 @@ void TraverseSchema::traverseSimpleContentDecl(const XMLCh* const typeName,
     // -----------------------------------------------------------------------
     // Process attributes if any
     // -----------------------------------------------------------------------
-    if ((content != 0 && isAttrOrAttrGroup(content)) || 
-        (content == 0 && typeInfo->getDerivedBy() == SchemaSymbols::EXTENSION)) {
-        processAttributes(simpleContent, content, baseName, localPart, uri, typeInfo);
-    }
+    processAttributes(simpleContent, content, baseName, localPart, uri, typeInfo);
 
     if (XUtil::getNextSiblingElement(simpleContent) != 0) {
         reportSchemaError(simpleContent, XMLUni::fgXMLErrDomain, XMLErrs::InvalidChildInSimpleContent);