     public function setTypicalCellHeight(columnIndex:int, value:Number):void
     {
         typicalCellHeights[columnIndex] = value;
+        
+        // if this is the first cell height, set default to it
+        if (isFirstTypicalCellHeight)
+        {
+            this.defaultRowHeight = value;
+            isFirstTypicalCellHeight = false;
+        }
+        else
+        {
+            // otherwise, find the max of the typical cell heights.
+            var max:Number = 0;
+            for (var i:int = 0; i < typicalCellHeights.length; i++)
+                max = Math.max(max, typicalCellHeights[i]);
+            this.defaultRowHeight = max;
+        }
+    }
+    
+    public function clearTypicalCellWidthsAndHeights():void
+    {
+        typicalCellWidths.length = 0;
+        typicalCellHeights.length = 0;
+        defaultRowHeight = 22;
+        isFirstTypicalCellHeight = true;
     }
         
     /**

            {
                for (i = temp; i < _columnCount; i++)
                    _columnWidths[i] = NaN;
            }
        }
    }

            return;
        
        _defaultRowHeight = bound(value, _minRowHeight, _maxRowHeight);
        
        // reset recent node.
        recentNode = null;
    }
    
    //----------------------------------
