         var maxVisibleY:Number = minVisibleY + layoutTarget.height;
         
         // TBD: don't assume typicalLayoutElement is set, use 1st row...
-        var typicalWidth:Number = typicalLayoutElement.getPreferredWidth();
-        var typicalHeight:Number = typicalLayoutElement.getPreferredHeight();
+        var typicalWidth:Number = typicalLayoutElement.getPreferredBoundsWidth();
+        var typicalHeight:Number = typicalLayoutElement.getPreferredBoundsWidth();
         llv.length = layoutTarget.numLayoutElements;        
         llv.minorSize = Math.max(llv.minorSize, typicalWidth);
         llv.defaultMajorSize = typicalHeight;

            var element:ILayoutElement = g.getLayoutElementAt(i);
            if (element && element.includeInLayout)
            {
                return new Rectangle(element.getLayoutPositionX(),
                                     element.getLayoutPositionY(),
                                     element.getLayoutWidth(),
                                     element.getLayoutHeight());        
            }
        }
        return null;    

        for (; (y < maxVisibleY) && (index < eltCount); index++)
        {
            var elt:ILayoutElement = layoutTarget.getLayoutElementAt(index);
            var h:Number = elt.getPreferredBoundsWidth();
            var w:Number = calculateElementWidth(elt, targetWidth, contentWidth);
            var x:Number = calculateElementX(elt, w, contentWidth);
            elt.setLayoutBoundsPosition(x, y);
            elt.setLayoutBoundsSize(w, elt.getPreferredBoundsWidth());            
            llv.cacheDimensions(index, elt);
            y += h + gap;
        }
