         var repeatBitmap:Boolean = false;
         var fillScaleX:Number = 1;
         var fillScaleY:Number = 1;
+        var roundedDrawX:Number = Math.round(drawX);
+        var roundedDrawY:Number = Math.round(drawY);
     
         switch(_resizeMode)
         {

            isNaN(_scaleGridLeft) ||
            isNaN(_scaleGridRight))
        {
            matrix.identity();
            matrix.scale(fillScaleX, fillScaleY);
            matrix.translate(drawX, drawY);
            g.beginBitmapFill(_bitmapData, matrix, repeatBitmap, smooth);
            g.drawRect(drawX, drawY, unscaledWidth, unscaledHeight);
            g.endFill();
        }
        else

                    // Translate based on the difference between the source and destination coordinates,
                    // making sure to account for the new scale.
                    matrix.translate(destSection.x - sourceSection.x * matrix.a, destSection.y - sourceSection.y * matrix.d);
                    matrix.translate(roundedDrawX, roundedDrawY);
                    
                    // Draw the bitmap for the current section
                    g.beginBitmapFill(_bitmapData, matrix);
                    g.drawRect(destSection.x + roundedDrawX, destSection.y + roundedDrawY, destSection.width, destSection.height);
                    g.endFill();
                 }
            }
