     // For use in getConcatenatedMatrix function
     private static var fakeDollarParent:QName;
     private static var uiComponentClass:Class;
+    private static var uiMovieClipClass:Class;
     private static var usesMarshalling:Object;
     private static var lastModuleFactory:Object;
     private static var computedMatrixProperty:QName;
+    private static var $transformProperty:QName;
 
     //--------------------------------------------------------------------------
     //

        
        if (useComputedMatrix && computedMatrixProperty == null)
            computedMatrixProperty = new QName(mx_internal, "computedMatrix");
        
        while (displayObject && displayObject.transform.matrix && (!excludingRootSprite || displayObject != root))
        {            

            // definition for UIComponent
            if (!usesMarshalling && ApplicationDomain.currentDomain.hasDefinition("mx.core.UIComponent"))
                uiComponentClass = Class(ApplicationDomain.currentDomain.getDefinition("mx.core.UIComponent"));
            // same thing for UIMovieClip
            if (!usesMarshalling && ApplicationDomain.currentDomain.hasDefinition("mx.flash.UIMovieClip"))
                uiMovieClipClass = Class(ApplicationDomain.currentDomain.getDefinition("mx.flash.UIMovieClip"));
        }
        
        // Note, root will be "null" if the displayObject is off the display list. In particular,
