BUG in FF introduced in rev: 4100

BUG in FF introduced in rev: 4100


rev: 4100 "Greatly reduced the complexity of the width/height methods.
This also fixes #2009, #1870, #1796, #1843, #1839, #1818, #1613, #1415
and #1629"
breaks accordion with option {autoheight: false}
The height calculated and set is too small, the accordion looks cropped
at the bottom, was working fine before rev: 4100
This only in FF2/pc/mac
Thank you!
-will
diff for convenience:
--- core.js(4099)
+++ core.js(4100)
@@ -5,8 +5,8 @@
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
- * $Date: 2007-12-10 20:04:59 +0100 (Mon, 10 Dec 2007) $
- * $Rev: 4094 $
+ * $Date: 2007-12-11 05:40:54 +0100 (Tue, 11 Dec 2007) $
+ * $Rev: 4100 $
*/
// Map over jQuery in case of overwrite
@@ -772,55 +772,22 @@
    },
    css: function( elem, name, force ) {
-        if ( name == "height" || name == "width" ) {
-            var old = {}, height, width;
-
-            // Revert the padding and border widths to get the
-            // correct height/width values
-            jQuery.each([ "Top", "Bottom", "Right", "Left" ], function(){
-                old[ "padding" + this ] = 0;
-                old[ "border" + this + "Width" ] = 0;
-            });
-
-            // Swap out the padding/border values temporarily
-            jQuery.swap( elem, old, function() {
-
-                // If the element is visible, then the calculation is easy
-                if ( jQuery( elem ).is(":visible") ) {
-                    height = elem.offsetHeight;
-                    width = elem.offsetWidth;
-
-                // Otherwise, we need to flip out more values
-                } else {
-                    elem = jQuery( elem.cloneNode(true) )
-                        .find
(":radio").removeAttr("checked").removeAttr("defaultChecked").end()
-                        .css({
-                            visibility: "hidden",
-                            position: "absolute",
-                            display: "block",
-                            right: "0",
-                            left: "0"
-                        }).appendTo( elem.parentNode )[0];
-
-                    var position = jQuery.css( elem.parentNode, "position" ) ||
"static";
-                    if ( position == "static" )
-                        elem.parentNode.style.position = "relative";
-
-                    height = elem.clientHeight;
-                    width = elem.clientWidth;
-
-                    if ( position == "static" )
-                        elem.parentNode.style.position = "static";
-
-                    elem.parentNode.removeChild( elem );
-                }
-            });
+        if ( name == "width" || name == "height" ) {
+            var width, height, props = { position: "absolute", visibility:
"hidden", display:"block" };
+        
+            function getWH() {
+                width = elem.clientWidth;
+                height = elem.clientHeight;
+            }
+        
+            if ( jQuery(elem).is(":visible") )
+                getWH();
+            else
+                jQuery.swap( elem, props, getWH );
-            return name == "height" ?
-                height :
-                width;
+            return name == "width" ? width : height;
        }
-
+        
        return jQuery.curCSS( elem, name, force );
    },