          *  control, the control dispatches the <code>selectionChange</code> 
          *  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.  To programatically set the "selected item"
+         *  use <code>dataProvider.getItemIndex()</code> to compute the item's location
+         *  and <code>setSelectedIndex()</code> to change the selection.</p>
+         *  
          *  @default []
          * 
          *  @return Vector of <code>dataProvider</code> items.

         *  control, the control dispatches the <code>selectionChange</code> 
         *  event. When the user changes the selection programmatically, the 
         *  control dispatches the <code>valueCommit</code> event.</p>
         *  @default undefined
         * 
         *  @return Vector of <code>dataProvider</code> items.

            
            return getDataProviderItem(rowIndex);           
        }
        
        /**
         *  @private
         */
        public function set selectedItem(value:Object):void
        {
            var f:Function = function():void
            {
                if (!dataProvider)
                    return;

                const rowIndex:int = dataProvider.getItemIndex(value);
                if (rowIndex == -1)
                    clearSelection();
                else
                    setSelectedIndex(rowIndex);
            }
            deferredOperations.push(f);  // function f() to be called by commitProperties()
            invalidateProperties();
        }        
        
        //----------------------------------
        //  selectedItems
