                     // 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(drawX, drawY);
+                    matrix.translate(roundedDrawX, roundedDrawY);
                     
                     // Draw the bitmap for the current section
                     g.beginBitmapFill(_bitmapData, matrix);
-                    g.drawRect(destSection.x + drawX, destSection.y + drawY, destSection.width, destSection.height);
+                    g.drawRect(destSection.x + roundedDrawX, destSection.y + roundedDrawY, destSection.width, destSection.height);
                     g.endFill();
                  }
             }

        var repeatBitmap:Boolean = false;
        var fillScaleX:Number = 1;
        var fillScaleY:Number = 1;
    
        switch(_resizeMode)
        {

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