     private var needsDisplayObjectAssignment:Boolean = false;
     private var layeringMode:uint = ITEM_ORDERED_LAYERING;
     private var numGraphicElements:uint = 0;
+    private var deferredStyleClients:Dictionary = null;  // of IAdvancedStyleClient
     
     private static const ITEM_ORDERED_LAYERING:uint = 0;
     private static const SPARSE_LAYERING:uint = 1;    

            mxmlContentChanged = false;
            setMXMLContent(_mxmlContent);
        }
    }
    
    /**

    
    /**
     *  @private
     *  Defer adding IAdvancedStyleClients until createChildren() time.  The AdvancedStyleClient's
     *  styleName might be a component's show inclusion in the IVisualElement hierarchy was also
     *  deferred.
     */ 
    override public function addStyleClient(styleClient:IAdvancedStyleClient):void    
    {
        if (!createChildrenCalled)
        {
            if (!deferredStyleClients)
                deferredStyleClients = new Dictionary(true);
            deferredStyleClients[styleClient] = true;
        }
        else 
        {
            super.addStyleClient(styleClient);
        }
    }
    
    /**
     *  @private
     */     
    override public function removeStyleClient(styleClient:IAdvancedStyleClient):void
    {
        if (deferredStyleClients && !createChildrenCalled)
            delete deferredStyleClients[styleClient];
        else
            super.removeStyleClient(styleClient);
    }
    
    /**
     *  @private
     *  Whether createChildren() has been called or not.
     *  We use this in the setter for mxmlContent to know 
     *  whether to validate the value immediately, or just 
