         
         const contentWidth:Number = Math.ceil(gridDimensions.getContentWidth());
         const contentHeight:Number = Math.ceil(gridDimensions.getContentHeight());
-        grid.setContentSize(contentWidth, contentHeight);        
-    }
-    
-    /**
-     *  @private
-     */
-    override public function clearVirtualLayoutCache():void
-    {
-        // TBD(hmuller):DTRT when the target changes
-    }    
-
-    /**
-     *  @private 
-     *  For the offset properties, a value of NaN means don't offset from that edge. A value
-     *  of 0 means to put the element flush against that edge.
-     * 
-     *  @param topOffset Number of pixels to position the element below the top edge.
-     *  @param bottomOffset Number of pixels to position the element above the bottom edge.
-     *  @param leftOffset Number of pixels to position the element to the right of the left edge.
-     *  @param rightOffset Number of pixels to position the element to the left of the right edge.
-     */ 
-    override mx_internal function getScrollPositionDeltaToElementHelper(
-                                                               index:int, topOffset:Number = NaN, 
-                                                               bottomOffset:Number = NaN, 
-                                                               leftOffset:Number = NaN,
-                                                               rightOffset:Number = NaN):Point
-    {
-        var rowIndex:int = index / gridDimensions.rowCount;
-        var colIndex:int;
-        
-        var elementR:Rectangle;
-        if (isRowSelectionMode())
-        {
-            elementR = gridDimensions.getRowBounds(rowIndex);
-        }
-        else if (isCellSelectionMode())
-        {
-            colIndex = index % gridDimensions.rowCount
-            elementR = gridDimensions.getCellBounds(rowIndex, colIndex);
-        }
-        
-        return getScrollPositionDeltaToElementHelperHelper(
-                    elementR, topOffset, bottomOffset, leftOffset, rightOffset);
-    }
-    
+        grid.setContentSize(contentWidth, contentHeight);
+        
+        if (enablePerformanceStatistics)
+        {
+            var endTime:Number = getTimer();
+            const cellCount:int = visibleRowIndices.length * visibleColumnIndices.length;
+            performanceStatistics.updateDisplayListEndTime = endTime;            
+            performanceStatistics.updateDisplayListTimes.push(endTime - startTime);
+            performanceStatistics.updateDisplayListRectangles.push(visibleGridBounds.clone());
+            performanceStatistics.updateDisplayListCellCounts.push(cellCount);
+        }
+    }  
+
     //--------------------------------------------------------------------------
     //
     //  DataGrid Access

        }
            
        return false;        
    }

    /**
     *  @private

    
    private function layoutGridElement(elt:IVisualElement, x:Number, y:Number, width:Number, height:Number):void
    {
        var startTime:Number;
        if (enablePerformanceStatistics)
            startTime = getTimer();

        const validatingElt:IInvalidating = elt as IInvalidating;
        
        if (!isNaN(width) || !isNaN(height))
