     public function getNamedDefinition(name:QName, ...componentTypes:Array):XML
     {
         var schemas:Array = currentScope();
-
+        var definition:XML = findDefinition(schemas, name, componentTypes);
+
+        // If we cannot find the definition in the current scope, try from
+        // the initial scope.
+        if (definition == null && schemas != initialScope)
+        {
+            definition = findDefinition(initialScope, name, componentTypes);
+        }
+
+        return definition;
+    }
+
+    /**
+     * @private
+     * Look for the definition of the QName in the schemas provided.
+     */ 
+    private function findDefinition(schemas:Array, name:QName, componentTypes:Array):XML
+    {
         for (var s:int = 0; s < schemas.length; s++)
         {
             var schema:Schema = schemas[s];


        // We keep track of the initial scope for reset()
        if (schemaStack.length == 1)
            initialScope = schemaStack[0];
    }

    /**

        }

        return null;
    } 

    /**
     * Locate a schema for the given namespace and push it to a
