             
             column = renderer.column;
             if (column && (visibleColumnIndices.indexOf(column.columnIndex) != -1))
+            {
                 oldRenderers[column] = renderer;
+            }
             else
+            {
                 freeVisualElement(renderer);
+                renderer.discard(true);
+            }
         }
         
         // Add all of the separators to the free-list, since laying them out is cheap

            // reuse or create a new renderer
            
            renderer = oldRenderers[column];
            if (!renderer)
            {
                var factory:IFactory = column.headerRenderer;
                if (!factory)
                    factory = columnHeaderBar.headerRenderer;
                renderer = allocateVisualElement(factory) as IGridItemRenderer;
            }
                
            // initialize the renderer

        const rendererY:Number = paddingTop;
        const rendererHeight:Number = unscaledHeight - paddingTop - paddingBottom;
        const maxRendererX:Number = columnHeaderBar.horizontalScrollPosition + unscaledWidth;
        
        const allocatedItemRenderers:Vector.<IGridItemRenderer> = new Vector.<IGridItemRenderer>();
        var createdItemRenderers:Vector.<IGridItemRenderer> = null;
        
        var columnIndex:int = -1;
        var visibleLeft:Number = 0;
