 
         var w:Number = width;
         var h:Number = height;
-        var bw:Number = _bounds.width;
-        var bh:Number = _bounds.height;
+        var bounds:Rectangle = getBounds();
+        var bw:Number = bounds.width;
+        var bh:Number = bounds.height;
 
         // Actual size is always the bounds size
         _width = bw;
         _height = bh;
+
+        // Make sure we don't divide by zero while calculating the scale
+        if (bw == 0)
+            bw = 1;
+        if (bh == 0)
+            bh = 1;
 
         var stroke:IStroke = getStroke();
         if (!stroke)

        boundsChanged();
    }
    
    private function boundsChanged(): void {
        // Clear our cached measurement and data values
        clearBounds();
        _data = null;

	        }
        }

        if (_scaleX != lastActualScaleX || _scaleY != lastActualScaleY)
        {
            lastActualScaleX = _scaleX;
            lastActualScaleY = _scaleY;
    
            invalidateDisplayList();
        }
