      
         if (property && data[property] !== newData)
         {
+            // If the data is sorted, turn off the sort for the edited data.
+            var sort:ISort = null;
+            if (dataGrid.dataProvider is ICollectionView)
+            {
+                var dataProvider:ICollectionView = ICollectionView(dataGrid.dataProvider);
+                if (dataProvider.sort)
+                {
+                    sort = dataProvider.sort;
+                    dataProvider.sort = null;
+                }
+            }
+            
+            var oldData:Object = data[property];
             data[property] = newData;
-            dataGrid.dataProvider.itemUpdated(data, property, data[property], newData);
-            dataGrid.validateNow();
+            dataGrid.dataProvider.itemUpdated(data, property, oldData, newData);
+            
+            // Restore the sort. The data will not be sorted due to this change.
+            if (sort)
+                ICollectionView(dataGrid.dataProvider).sort = sort;
         }
 
         return true;

{
import flash.events.Event;
import flash.events.MouseEvent;
import flash.utils.describeType;


import mx.core.IIMESupport;
import mx.core.IInvalidating;
import mx.core.IVisualElement;

import spark.components.gridClasses.GridColumn;
import spark.components.DataGrid;
import spark.components.Group;

use namespace mx_internal;

