 
             for (i=0;i<len;i++)
             {
-            	item = bottomLayerItems[i];
-	            displayObject = (item is GraphicElement)? GraphicElement(item).displayObject:item as DisplayObject;
-	            super.setChildIndex(displayObject,insertIndex++);
+            	myItemRenderer = bottomLayerItems[i];
+	            super.setChildIndex(myItemRenderer as DisplayObject, insertIndex++);
             }
         }
         

    public function set dataProvider(value:IList):void
    {
        if (_dataProvider)
        {
            _dataProvider.removeEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
        }
        
        _dataProvider = value;
        
        // Need to convert null to undefined here, since subsequent content checks test for undefined
        if (_dataProvider === null)
            _dataProvider = undefined;
            
        if (_dataProvider is IList)
        {
            _dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler, false, 0, true);
        }
            
        dataProviderChanged = true;
        invalidateProperties();

		
        // Iterate through all of the items
        var len:int = itemRendererRegistry.length; 
        
        for (var i:int = 0; i < len; i++)
        {  
            var myItemRenderer:IVisualElement = itemRendererRegistry[i];
            
            var layer:Number = myItemRenderer.layer;
            
            if (layer != 0)
            {               
                if (layer > 0)
                {
                    if (topLayerItems == null) topLayerItems = new Vector.<IVisualElement>();
                    topLayerItems.push(myItemRenderer);
                    continue;                   
                }
                else
                {
                    if (bottomLayerItems == null) bottomLayerItems = new Vector.<IVisualElement>();
                    bottomLayerItems.push(myItemRenderer);
                    continue;                   
                }
            }
            
            super.setChildIndex(myItemRenderer as DisplayObject, insertIndex++);
        }
        
        if (topLayerItems != null)
        {
            keepLayeringEnabled = true;
