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

    private var _preserveSelection:Boolean = false;
    
    /**
     *  If true, the selection will be preserved when the 
     *  <code>dataProvider</code> refreshes its collection.
     *  The selection will be clipped if it includes rows or columns that no
     *  longer exist after the refresh.  The selection sticks to its position,
     *  not the data.
     *
     *  @default false
     * 

import mx.core.mx_internal;
import mx.events.CollectionEvent;
import mx.events.CollectionEventKind;
import mx.collections.ICollectionView;

import spark.components.Grid;
import spark.components.gridClasses.CellPosition;
