                 for (var i:int = index - 1; i >= 0; i--)
                 {
                     var prevItem:* = getItemAt(i);
+                    
+                    if (!(prevItem is GraphicElement))
+                    	prevItem = getItemSkin(prevItem);
+                    	
                     if (prevItem is DisplayObject)
                         childIndex = super.getChildIndex(DisplayObject(prevItem)) ;
                     else if (prevItem is GraphicElement)

package flex.core {
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.geom.ColorTransform;
import flash.geom.Matrix;
import flash.geom.Rectangle;

            
    }
    
    // Returns true if the Group's display object can be shared with graphic elements
    // inside the group
    private function get canShareDisplayObject():Boolean
    {
    	return blendMode == "normal";
    }
    
    // This function assumes that the only displayObjects are either items in the content array
    // or created directly for an item in the content array. 
    private function assignDisplayObjects(startIndex:int = 0):void
    {
        var currentAssignableDO:DisplayObject = canShareDisplayObject ? this : null;
        var lastDisplayObject:DisplayObject = this;
        
        if (alwaysUseItemRenderer)
