                     {
                         //we need to respect requiresSelection 
                         if (!requiresSelection)
-                            return [NO_SELECTION];
-                        else return [selectedIndices[0]]; 
+                            return [];
+                        else 
+                            return [selectedIndices[0]]; 
                     }
                     else
                     {

            return;
        event.preventDefault(); 
        
        if (selectUponNavigation)
        {
            if (allowMultipleSelection && event.shiftKey && selectedIndices)
            {
                var newInterval:Array = []; 
                var i:int; 
                //contiguous multi-selection action - create the new selection
                //interval
                if (selectedIndex <= proposedNewIndex)
                {
                    for (i = selectedIndex; i <= proposedNewIndex; i++)
                    {
                        newInterval.push(i); 
                    }
                }
                else 
                {
                    for (i = selectedIndex; i >= proposedNewIndex; i--)
                    {
                        newInterval.push(i); 
                    }
                }
                selectedIndices = newInterval;   
                ensureItemIsVisible(proposedNewIndex); 
            }
            else
            {
                //simple new selection 
                selectedIndex = proposedNewIndex; 
                ensureItemIsVisible(proposedNewIndex);
            }
        }
        else
        {
            //Handle the focus change of the items so that the currentCaretIndex property
            //gets updated and the itemFocusChanged event dispatches. 
            if(event.ctrlKey)
            {
                handleCaretChange(proposedNewIndex, true);
                ensureItemIsVisible(proposedNewIndex); 
            }
        }
    }
  

    //  Private Methods
    //
    //--------------------------------------------------------------------------
    
    /**
     *  @private
     *  Returns the index of the first selected item. In single 
     *  selection, this is just selectedIndex. In multiple 
     *  selection, this is the index of the first selected item.  
     */
    private function getFirstSelectedIndex():Number
    {
        if (!allowMultipleSelection)
            return selectedIndex;
        else if (selectedIndices && selectedIndices.length > 0)
            return selectedIndices[0]; 
        else 
            return -1; 
    }
    
    /**
     *  @private
