     //  Properties
     //
     //--------------------------------------------------------------------------
+    
+    //----------------------------------
+    //  bounds
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Need to override here to set the scaleX and scaleY of the contentHolderObj.
+     */
+    override protected function get bounds():Rectangle
+    {
+        // not calling super.bounds but the functionality is copied here.
+        
+        // if we have a bounding box, use that.  With a bounding box, 
+        // this bounds getter might get called frequently.
+        if (boundingBoxName && boundingBoxName != "" 
+            && boundingBoxName in this && this[boundingBoxName])
+        {
+            return this[boundingBoxName].getBounds(this);
+        }
+        
+        // otherwise we need to change the scaleX and scaleY of the contentHolderObj so that we don't 
+        // take the contentHolderObj into account at all
+        if (contentHolderObj)
+        {
+            var oldScaleX:Number = contentHolderObj.mx_internal::$scaleX;
+            var oldScaleY:Number = contentHolderObj.mx_internal::$scaleY;
+            
+            contentHolderObj.mx_internal::$scaleX = 0.001;
+            contentHolderObj.mx_internal::$scaleY = 0.001;
+        }
+        
+        var bounds:Rectangle = getBounds(this);
+        
+        if (contentHolderObj)
+        {
+            contentHolderObj.mx_internal::$scaleX = oldScaleX;
+            contentHolderObj.mx_internal::$scaleY = oldScaleY;
+        }
+        
+        return bounds;
+    }
    
     //----------------------------------
     //  contentHolder

    {
        if (contentHolderObj)
        {
            // secretScale is the amount we scaled by to change the width and height
            var secretScaleX:Number = mx_internal::$scaleX/scaleX;
            var secretScaleY:Number = mx_internal::$scaleY/scaleY;

            // width and height are what we actually want our content
            // to fill up, but it doesn't take in to account our secretScale.
            if (!scaleContent)
            {
                // apply inverse of the scale
                contentHolderObj.scaleX = 1/secretScaleX;
                contentHolderObj.scaleY = 1/secretScaleY;
            }
            else
            {

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function get scaleContentWhenResized():Boolean
    {
        return _scaleContentWhenResized;
    }
        
   /**
    *  @private
    */
    public function set scaleContentWhenResized(value:Boolean):void
    {
        _scaleContentWhenResized = value;
        
        if (initialized)
            sizeContentHolder();
