      *  event. When the user changes the selection programmatically, the 
      *  control dispatches the <code>valueCommit</code> event.</p>
      * 
-     *  <p>Attempts to set this property are deferred until commitProperties()
-     *  runs, and the dataProvider property has been set.  This property is not
-     *  intended for programatic selection updates, it can be used to initialize the
-     *  selection in MXML markup.  The setSelectedCell(), addSelectedCell(),
-     *  and selectCellRegion() methods should be used for programatic selection 
-     *  updates, for example when writing a keyboard or mouse event handler. </p>  
+     *  <p> This property is intended be used to initialize or bind to the
+     *  selection in MXML markup.  The setSelectedCell() method should be used
+     *  for programatic selection updates, for example when writing a keyboard
+     *  or mouse event handler. </p> 
      * 
      *  @default An empty Vector.<CellPosition>
      * 

        const rowIndex:int = (value) ? value.rowIndex : -1;
        const columnIndex:int = (value) ? value.columnIndex : -1;
        
        var f:Function = function():void
        {
            if ((rowIndex != -1) && (columnIndex != -1))
                setSelectedCell(rowIndex, columnIndex);
            else
                clearSelection();
        }
        deferredOperations.push(f);  // function f() to be called by commitProperties()
        invalidateProperties();
    }        
                   
    //----------------------------------

        
        const valueCopy:Vector.<int> = (value) ? value.concat() : new Vector.<int>(0);
        
        // Defer the selection change if we haven't been initialized
        
        if (!initialized)
        {        
            // Append a deferred operation function that selects the specified indices
        
            var f:Function = function():void
            {
                clearSelection();
                for each (var index:int in valueCopy)
                    addSelectedIndex(index);
            }
            deferredOperations.push(f);  // function f() to be called by commitProperties()
            invalidateProperties();
        }
        else
        {
            clearSelection();
            for each (var index:int in valueCopy)
                addSelectedIndex(index);            
        }
    }        
    
    //----------------------------------
