     //
     //  Skin Part Property Internals
     //
-    //--------------------------------------------------------------------------        
+    //-------------------------------------------------------------------------- 
+    
+    /**
+     *  @private
+     *  A list of functions to be applied to the grid skin part at partAdded() time.
+     *  This list is used to defer making grid selection updates per the set methods for
+     *  the selectedIndex, selectedIndices, selectedItem, selectedItems, selectedCell
+     *  and selectedCells properties.
+     */
+    private const deferredGridOperations:Vector.<Function> = new Vector.<Function>();
     
     /**
      *  @private

        if (grid)
            return grid.selectedIndex;
        
        return selectedIndices.length ? selectedIndices[0] : -1;
    }
    
    //----------------------------------
    //  selectedIndices
    //----------------------------------

            grid.addEventListener(FlexEvent.VALUE_COMMIT, grid_valueCommitHandler);
            grid.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, grid_changeEventHandler);
            grid.addEventListener("columnsChanged", grid_columnsChangedEventHandler);
            
            // Deferred operations (grid selection updates)
            
            for each (var deferredGridOperation:Function in deferredGridOperations)
                deferredGridOperation(grid);
            deferredGridOperations.length = 0;
        }
        
        if (instance == columnHeaderBar)
