                 // Check displayObject for null, some graphic elements
                 // may choose not to create a DisplayObject during this pass.
                 if (displayObject)
-                    addItemToDisplayList(displayObject, current, insertIndex++);
-
-                current.sharedIndex = -1;
-            }
-            invalidateAfterAssignment(current, oldSharedIndex, oldDisplayObject);
+                    addDisplayObjectToDisplayList(displayObject, insertIndex++);
+
+                current.displayObjectSharingMode = DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT;
+            }
+            invalidateAfterAssignment(current, oldSharingMode, oldDisplayObject);
         }
         return insertIndex;
     }

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function graphicElementPropertiesChanged(element:IGraphicElement):void
    {
        invalidateProperties();        
    }

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function invalidateGraphicElementDisplayList(element:IGraphicElement):void
    {
        if (element.displayObject is ISharedDisplayObject)
            ISharedDisplayObject(element.displayObject).redrawRequested = true;
