             dispatchEvent(event);
     }
     
+    /**
+     *  @private
+     */
+    private function grid_invalidateDisplayListHandler(event:Event):void
+    {
+        // invalidate all IDataGridElements
+        if (columnHeaderGroup)
+            columnHeaderGroup.invalidateDisplayList();
+    }
+    
+    /**
+     *  @private
+     */
+    private function grid_invalidateSizeHandler(event:Event):void
+    {
+        // invalidate all IDataGridElements
+        if (columnHeaderGroup)
+            columnHeaderGroup.invalidateSize();
+    }     
+    
     //--------------------------------------------------------------------------
     //
     //  Header event handlers

        if (instance == columnHeaderGroup)
        {
            if (grid)
                columnHeaderGroup.dataGrid = this;
            
            columnHeaderGroup.addEventListener(GridEvent.GRID_CLICK, columnHeaderGroup_clickHandler);
            columnHeaderGroup.addEventListener(GridEvent.SEPARATOR_ROLL_OVER, separator_rollOverHandler);

            grid.addEventListener(GridEvent.GRID_ROLL_OUT, grid_RollOutHandler);
            grid.addEventListener(GridCaretEvent.CARET_CHANGE, grid_caretChangeHandler);            
            grid.addEventListener(FlexEvent.VALUE_COMMIT, grid_valueCommitHandler);
            grid.addEventListener("invalidateSize", grid_invalidateSizeHandler);            
            grid.addEventListener("invalidateDisplayList", grid_invalidateDisplayListHandler);
            
            // Deferred operations (grid selection updates)
            
