      */    
     private function hasRowSelection():Boolean
     {
-        return allRows().length > 0;
+        return isRowSelectionMode() && selectionLength > 0;
     }
     
     /**

     *  @playerversion AIR 2.0
     *  @productversion Flex 4.5
     */
    public function allCells():Vector.<Object>
    {
        var cells:Vector.<Object> = new Vector.<Object>;
        
        if (!isCellSelectionMode())
            return cells;

        var left:int;
        var right:int;
        var top:int;

            if (!hasRowSelection())
                selectionChanged = grid.setSelectedIndex(0);
        }
            else if (isCellSelectionMode())
        {
            if (!hasCellSelection())
                selectionChanged = grid.setSelectedCell(0, 0);
