         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
-            result /= obj.scaleX;
+            result = (obj.scaleX == 0) ? 0 : result / obj.scaleX;
         }
         return result;
     }

            {
                // We are already taking scale into account from the transform,
                // so adjust here since IUIComponent mixes it with width/height
                height /= obj.scaleY;
            }
            
            // By default the IUIComponent's registration point is the same


        if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
        {
            width = (obj.scaleX == 0) ? 0 : width / obj.scaleX;
            height = (obj.scaleY == 0) ? 0 : height / obj.scaleY;
        }
        
        // We are already taking scale into account from the transform,
