             const finalRowHeight:Number = gridDimensions.getRowHeight(rowIndex);
             if (rowHeight != finalRowHeight)
             {
+                const visibleColumnsLength:int = newVisibleColumnIndices.length;
                 rowHeight = finalRowHeight;
                 for each (colIndex in newVisibleColumnIndices)
                 {
-                    renderer = newVisibleItemRenderers[irOffsetForRow + colIndex];                    
+                    const rowOffset:int = newVisibleRowIndices.indexOf(rowIndex);
+                    const colOffset:int = newVisibleColumnIndices.indexOf(colIndex);                    
+                    const index:int = (rowOffset * visibleColumnsLength) + colOffset;
+
+                    renderer = newVisibleItemRenderers[index];                    
                     layoutGridElement(renderer, renderer.x, renderer.y, 
                                       renderer.width, rowHeight);
                     gridDimensions.setCellHeight(


package spark.components.supportClasses
{
import flash.geom.Rectangle;
import flash.utils.Dictionary;


        {
            newVisibleRowIndices.push(rowIndex);
            
            // Returns the default height, if the row/cell height not previously
            // set.
            var rowHeight:Number = gridDimensions.getRowHeight(rowIndex);
