         }
 
         if (isNaN(_columnWidth))
-            _columnWidth = columnWidth;
+            _columnWidth = _tileWidthCached = columnWidth;
         if (isNaN(_rowHeight))
-            _rowHeight = rowHeight;
+            _rowHeight = _tileHeightCached = rowHeight;
     }
 
     /**

        var childHeight:Number = NaN;

        // Determine size of the element
        // TODO EGeorgie: Should we respect minimum element width?
        if (!isNaN(element.percentWidth))
            childWidth = Math.round(cellWidth * Math.min(100, element.percentWidth) / 100);

        // TODO EGeorgie: Should we respect minimum element height?
        if (!isNaN(element.percentHeight))
            childHeight = Math.round(cellHeight * Math.min(100, element.percentHeight) / 100);

        if (elementHorizontalAlign == "justify")
            childWidth = cellWidth;
        if (elementVerticalAlign == "justify")
            childHeight = cellHeight;

        // TODO EGeorgie: compare childWidth/childHeight against min/max.
        // The cell size should be a maximum for the element (in cases where the cell has explicit width/height).

        // Size the element
        element.setLayoutBoundsSize(childWidth, childHeight, true /*postTransform*/);

        var x:Number = cellX;
        switch (elementHorizontalAlign)

     */
    private function calculateElementCount():int
    {
        if (-1 != _numLayoutElementsCached)
            return _numLayoutElementsCached;

        var layoutTarget:GroupBase = target;
        var count:int = layoutTarget.numLayoutElements;
        _numLayoutElementsCached = count;
        for (var i:int = 0; i < count; i++)
        {
            var el:ILayoutElement = layoutTarget.getLayoutElementAt(i);
            if (!el || !el.includeInLayout)
                _numLayoutElementsCached--;
        }

        return _numLayoutElementsCached;
    }

    /**
