      *  @private The Sprite to draw into. 
      *  If null, then we just use displayObject or sharedDisplayObject
      */
-	private var _drawnDisplayObject:Sprite;
-
-    /**
-     *  @private
+	private var _drawnDisplayObject:InvalidatingSprite;
+
+    /**
+     *  @private 
      *  Whether this element needs to have its
      *  commitProperties() method called.
      */

		                if (!_drawnDisplayObject)
						{
							// Create a new target for the drawing commands
							_drawnDisplayObject = new Sprite();
							Sprite(displayObject).addChild(_drawnDisplayObject);
						}    	
	                }

     */
    protected function get drawY():Number
    {
    	// If we have a display object and we might be shared, the display object 
    	// gets moved to 0,0. Otherwise, use the x position plus the offset. 
    	// (Note that in the first case, the offset is already calculated when the
    	// layout matrix is applied to the display object). 
    	if (displayObject != null && nextSiblingNeedsDisplayObject)
    		return 0;
        if(layoutFeatures != null && layoutFeatures.offsets != null)
            return y + layoutFeatures.offsets.y;    
        return y;
    }
    
    //----------------------------------
