         
         // Capture image, with consideration for transform and color matrix.
         var bounds:Rectangle = new Rectangle();
-        snapShot.source = BitmapUtil.getSnapshot(target, bounds, true);
+        snapShot.source = BitmapUtil.getSnapshotWithPadding(target, padding, true, bounds);
         
         // Size and offset snapShot to match our image bounds data.
         snapShot.width = bounds.width;
         snapShot.height = bounds.height;
-        snapShot.x = target.x + bounds.left;
-        snapShot.y = target.y + bounds.top;
-        
+
+        var m:Matrix = new Matrix();
+        m.translate(bounds.left, bounds.top);
+
+        // Apply target's inverse concatenated matrix:
+        var parent:DisplayObjectContainer = target.parent;
+        if (parent)
+        {
+            var inverted:Matrix = parent.transform.concatenatedMatrix.clone();
+            inverted.invert();
+            m.concat(inverted);
+        }
+        snapShot.setLayoutMatrix(m, false);
+
         // Exclude from layout.
         snapShot.includeInLayout = false;
         

     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */ 
    protected function getSnapshot(target:UIComponent):BitmapImage
    {       
        var snapShot:BitmapImage = new BitmapImage();
        

    {
        _endView = value;
    }
        
    //----------------------------------
    //  navigator
    //----------------------------------
