 	        drawHeight = bounds.height;
         }
 
-        return _bounds.clone();
+        var result:Rectangle = _bounds.clone();
+        if (!isNaN(_explicitWidth))
+            result.width = _explicitWidth;
+        
+        if (!isNaN(_explicitHeight))
+            result.height = _explicitHeight; 
+
+        return result;
     }
     
     //----------------------------------


        var w:Number = width;
        var h:Number = height;
        var bw:Number = bounds.width;
        var bh:Number = bounds.height;

        var stroke:IStroke = getStroke();
        if (!stroke)

        _scaleX = _userScaleX;
        _scaleY = _userScaleY;

        // TODO EGeorgie: arbitrary 2d transforms for paths
        if (isNaN(width))
            width = preferredSize.x;
