     /**
      *  @private
      */  
-    override protected function getStrokeExtents(postLayoutTransform:Boolean = true):Point
-    {
-        // FIXME (egeorgie): currently we take only scale into account,
+    override protected function getStrokeExtents(postLayoutTransform:Boolean = true):Rectangle
+    {
+        // TODO (egeorgie): currently we take only scale into account,
         // but depending on joint style, cap style, etc. we need to take
         // the whole matrix into account as well as examine every line segment...
 
         if (!stroke)
         {
-            _strokeExtents.x = 0;
-            _strokeExtents.y = 0;
+            _strokeExtents.x      = 0;
+            _strokeExtents.y      = 0;
+			_strokeExtents.width  = 0;
+			_strokeExtents.height = 0;
             return _strokeExtents;
         }
 

                weight *= sX;
            else
                weight *= Math.sqrt(0.5 * (sX * sX + sY * sY));
            
            _strokeExtents.x = weight;
            _strokeExtents.y = weight;
            return _strokeExtents;
        }
        else if (scaleMode == LineScaleMode.HORIZONTAL)
        {
            _strokeExtents.x = weight * sX;
            _strokeExtents.y = weight;
            return _strokeExtents;
        }
        else if (scaleMode == LineScaleMode.VERTICAL)
        {
            _strokeExtents.x = weight;
            _strokeExtents.y = weight * sY;
            return _strokeExtents;
        }


        var weight:Number = stroke.weight;
        if (weight == 0)
        {
            _strokeExtents.width  = 1;
            _strokeExtents.height = 1;
			_strokeExtents.x      = -0.5;
			_strokeExtents.y      = -0.5;
            return _strokeExtents;
        }

        var scaleMode:String = stroke.scaleMode;
        if (!scaleMode || scaleMode == LineScaleMode.NONE || !postLayoutTransform)
        {
            _strokeExtents.width  = weight;
            _strokeExtents.height = weight;
			_strokeExtents.x = -weight * 0.5;
			_strokeExtents.y = -weight * 0.5;
            return _strokeExtents;
        }

        var sX:Number = scaleX;
        var sY:Number = scaleY;

        // TODO (egeorgie): stroke thickness depends on all matrix components,
        // not only on scale.
        if (scaleMode == LineScaleMode.NORMAL)
        {
