         cellRegions.push(cr);
         
         _selectionLength = rowCount * columnCount;
+        
+        if (preserveSelection && 
+            selectionMode == GridSelectionMode.SINGLE_ROW || 
+            selectionMode == GridSelectionMode.SINGLE_CELL)
+        {
+            selectedItem = grid.dataProvider.getItemAt(rowIndex);
+        }
     }
 
     /**

        cellRegions.length = 0;       
        selectAllFlag = false;
        _selectionLength = 0;
    }
        
    /**


    /**
     *  @private
     *  The sort or filter on the collection changed. For columns, this is
     *  the same as a "reset" event.
     */
    private function columnsCollectionRefresh(event:CollectionEvent):void
    {
        columnsCollectionReset(event);
    }

    /**
     *  @private
