                 
                 // Draw the transformed bitmapData into a new bitmapData that is the size of the bounds
                 // This will prevent the edge pixels getting repeated to fill the empty space
-                nonRepeatSource = new BitmapData(newW, newY, true, 0xFFFFFF);
-                nonRepeatSource.draw(sourceAsBitmapData, transformMatrix);
+                nonRepeatAlphaSource = new BitmapData(newW, newY, true, 0xFFFFFF);
+                nonRepeatAlphaSource.draw(sourceAsBitmapData, transformMatrix);
                 
                 // The transform matrix has already been applied to the source, so just use identity
                 // for the beginBitmapFill call

                // Save off the bounds so we can compare it the next time this function is called
                lastBoundsWidth = bounds.width;
                lastBoundsHeight = bounds.height;
            }
            
            sourceAsBitmapData = nonRepeatSource;
        }
        
		target.beginBitmapFill(sourceAsBitmapData, transformMatrix, repeatFill, smooth);
	}

				bitmapData = new BitmapData(tmpSprite.width, tmpSprite.height, true, 0);
				bitmapData.draw(tmpSprite, new Matrix());
			}
            
            // If the bitmapData isn't transparent (ex. JPEG), then copy it into a transparent bitmapData
            if (!bitmapData.transparent)
            {
                // TODO (jszeto) : Dispose of this bitmap when we no longer need it
                var transparentBitmap:BitmapData = new BitmapData(bitmapData.width, bitmapData.height, true);
                transparentBitmap.draw(bitmapData);
                _source = transparentBitmap;
            }
            else
            {
	
			    _source = bitmapData;
            }
			
            applyAlphaMultiplier = true;
			dispatchFillChangedEvent("source", oldValue, bitmapData);
        }
	}
