         
         element.visible = false;
         
-        // Reset GridItemRenderers back to (0,0), otherwise when the element is reused
-        // it will be validated at its last layout size which causes problems with 
-        // text reflow.
-        
-        if (element is GridItemRenderer)
-            element.setLayoutBoundsSize(0, 0, false);        
-        
         const factory:IFactory = elementToFactoryMap[element]; 
         if (!factory)
             return false;

import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
import mx.events.PropertyChangeEvent;

import spark.components.DataGrid;
import spark.components.Grid;

        if (enablePerformanceStatistics)
            startTime = getTimer();
        
        const validateNowRenderer:IInvalidating = renderer as IInvalidating;
        const graphicElementRenderer:IGraphicElement = renderer as IGraphicElement;
        
        if (!isNaN(width) || !isNaN(height))
        {
            const validateClientRenderer:ILayoutManagerClient = renderer as ILayoutManagerClient
            if (validateClientRenderer)
            {
                LayoutManager.getInstance().validateClient(validateClientRenderer, true); // true => skip validateDisplayList()
            }
            else if (graphicElementRenderer)
            {
                graphicElementRenderer.validateProperties();
                graphicElementRenderer.validateSize();
            }
            
            renderer.setLayoutBoundsSize(width, height);            
        }
        
        // For graphic elements we don't want to call validateNow() since it calls
        // validateClient on the parent of the graphic element which is the GridLayer.  
        
        if (graphicElementRenderer)
            graphicElementRenderer.validateDisplayList();              
        else if (validateNowRenderer)
            validateNowRenderer.validateNow();
        
        renderer.setLayoutBoundsPosition(x, y);
        
