                 lastBoundsHeight != bounds.height)
             {
                 // Release the old bitmap data
-                if (nonRepeatSource)
-                    nonRepeatSource.dispose();
+                if (nonRepeatAlphaSource)
+                    nonRepeatAlphaSource.dispose();
                 
                 var bitmapTopLeft:Point = new Point();
                 // We want the top left corner of the bitmap to be at (0,0) when we copy it. 

		if (!source)
			return;        
        
        var sourceAsBitmapData:BitmapData = source as BitmapData;
        
        var repeatFill:Boolean = (resizeMode == BitmapResizeMode.REPEAT);  
        
        
        if (compoundTransform)
        {

             bounds.width <= sourceAsBitmapData.width && 
             bounds.height <= sourceAsBitmapData.height))
        {
            if (nonRepeatAlphaSource && nonRepeatSourceCreated)
            {
                nonRepeatAlphaSource.dispose();
                nonRepeatAlphaSource = null;
                applyAlphaMultiplier = alpha != 1;
            }
            
            nonRepeatSourceCreated = false;
        }
        else if (resizeMode == BitmapResizeMode.NOSCALE)
        {
