      */
     private function setEditedItemPosition(coord:Object):void
     {
-        commitEditedItemPosition(coord);
+        if (!grid.enabled || !dataGrid.editable)
+            return;
+        
+        if (!grid.dataProvider || grid.dataProvider.length == 0)
+            return;
+        
+        // just give focus back to the itemEditorInstance
+        if (itemEditorInstance && coord &&
+            itemEditorInstance is IFocusManagerComponent &&
+            _editedItemPosition.rowIndex == coord.rowIndex &&
+            _editedItemPosition.columnIndex == coord.columnIndex)
+        {
+            IFocusManagerComponent(itemEditorInstance).setFocus();
+            return;
+        }
+        
+        // dispose of any existing editor, saving away its data first
+        if (itemEditorInstance)
+        {
+            if (!dataGrid.endItemEditorSession())
+                return;
+        }
+        
+        // store the value
+        _editedItemPosition = coord;
+        
+        // allow setting of undefined to dispose item editor instance
+        if (!coord)
+            return;
+        
+        var rowIndex:int = coord.rowIndex;
+        var columnIndex:int = coord.columnIndex;
+        
+        dataGrid.ensureCellIsVisible(rowIndex, columnIndex);
+        
+        createItemEditor(rowIndex, columnIndex);
+        
+        if (itemEditorInstance is IInvalidating)
+            IInvalidating(itemEditorInstance).validateNow();
+        
+        var column:GridColumn = dataGrid.columns.getItemAt(columnIndex) as GridColumn;
+        if (itemEditorInstance is IIMESupport)
+            IIMESupport(itemEditorInstance).imeMode =
+                (column.imeMode == null) ? dataGrid.imeMode : column.imeMode;
+        
+        var fm:IFocusManager = grid.focusManager;
+        // trace("setting focus to item editor");
+        if (itemEditorInstance is IFocusManagerComponent)
+            fm.setFocus(IFocusManagerComponent(itemEditorInstance));
+        
+        lastEditedItemPosition = _editedItemPosition;
+        
+        // Notify event that a new editor is starting.
+        // Don't dispatch life cycle events for item renderers.
+        var dataGridEvent:GridItemEditorEvent = null;
+        
+        if (column.rendererIsEditable == false)
+            dataGridEvent = new GridItemEditorEvent(GridItemEditorEvent.GRID_ITEM_EDITOR_SESSION_START);
+        
+        if (dataGridEvent)
+        {
+            dataGridEvent.columnIndex = editedItemPosition.columnIndex;
+            dataGridEvent.column = column;
+            dataGridEvent.rowIndex = editedItemPosition.rowIndex;
+            dataGrid.dispatchEvent(dataGridEvent);
+        }
     }
 
     /**

        if (!dataGrid.editable)
            return;

        lastEvent = event;
        
        const eventRowIndex:int = event.rowIndex;

        //trace("grid_gridDoubleClickHandler: got double click");
        
        if (!dataGrid.editable)
            return;
        
        if (!isValidCellPosition(event.rowIndex, event.columnIndex))
            return;
        
        lastEvent = event;
