  *  @playerversion AIR 1.5
  *  @productversion Flex 4
  */
-public class Group extends GroupBase implements IVisualElementContainer, ISharedGraphicsDisplayObject
+public class Group extends GroupBase implements IVisualElementContainer, ISharedDisplayObject
 {
     /**
      *  Constructor.

        // the element with the shared displayObject and the next element that has a displayObject.
        if (numGraphicElements > 0)
        {
            var length:int = numElements;
            for (var i:int = 0; i < length; i++)
            {
                var element:IGraphicElement = getElementAt(i) as IGraphicElement;
                if (!element)
                   continue;

                // Do a special check for layer, we may stumble upon an element with layer != 0
                // before we're done with the current shared sequence and we don't want to mark
                // the sequence as valid, until we reach the next sequence.   
                if (element.layer == 0)
                {
                    // Is this the start of a new shared sequence?          
                    if (element.shareIndex <= 0)
                    {
                        // We have finished redrawing the previous sequence
                        if (sharedDisplayObject)
                            sharedDisplayObject.redrawRequested = false;
                        
                        // Start the new sequence
                        sharedDisplayObject = element.displayObject as ISharedDisplayObject;
                    }
                    
                    if (!sharedDisplayObject || sharedDisplayObject.redrawRequested) 
                        element.validateDisplayList();
                }
                else
                {
                    // If we have layering, we don't share the display objects.
                    // Don't update the current sharedDisplayObject 
                    var elementDisplayObject:ISharedDisplayObject = element.displayObject as ISharedDisplayObject;
                    if (!elementDisplayObject || elementDisplayObject.redrawRequested)
                    {
                       element.validateDisplayList();

                       if (elementDisplayObject)
                           elementDisplayObject.redrawRequested = false;
                    }
                }
            }
        }
            
        // Mark the last shared displayObject valid
        if (sharedDisplayObject)
            sharedDisplayObject.redrawRequested = false;
        
        if (scaleGridChanged)
        {
            scaleGridChanged = false;
        
            if (isValidScaleGrid())
            {
                if (numChildren > 0)
                    throw new Error(resourceManager.getString("components", "scaleGridGroupError"));

                super.scale9Grid = new Rectangle(scaleGridLeft, 
                                           scaleGridTop,    
                                           scaleGridRight - scaleGridLeft, 
                                           scaleGridBottom - scaleGridTop);
            }
            else
            {
                super.scale9Grid = null;
            }                              
        }
    }


    public function discardDisplayObject(element:IGraphicElement):void
    {
        var oldDisplayObject:DisplayObject = element.displayObject;
        if (!oldDisplayObject)
            return;

        // If the element created the display object
        if (element.sharedIndex <= 0 && oldDisplayObject.parent == this)
        {
            super.removeChild(oldDisplayObject);

