             {
                 bitmapData = new BitmapData(tmpSprite.width, tmpSprite.height, true, 0);
                 bitmapData.draw(tmpSprite, new Matrix());
+                
+                if (tmpSprite.scale9Grid)
+                {
+	                _scaleGridLeft = tmpSprite.scale9Grid.left;
+	                _scaleGridRight = tmpSprite.scale9Grid.right;
+	                _scaleGridTop = tmpSprite.scale9Grid.top;
+	                _scaleGridBottom = tmpSprite.scale9Grid.bottom;
+                }
             }       
             
-            _fill.source = bitmapData;
+            _source = bitmapData;
+            
+            // Flush the cached scale grid points
+            cachedSourceGrid = null;
+            cachedDestGrid = null;
+            
             invalidateSize();
             invalidateDisplayList();
         }

    public function BitmapGraphic()
    {
        super();
        
        _fill = new BitmapFill();
    }
    
    private var _fill:BitmapFill;
    
    //--------------------------------------------------------------------------
    //
    //  Properties
    //
    //--------------------------------------------------------------------------
    
    //----------------------------------
    //  resizeMode

    /**
     *  @private
     */
    public function get smooth():Boolean
    {
        return _smooth;
    } 
    
    //--------------------------------------------------------------------------
    //
