         else if (editedItemRenderer)
         {
             // cancel focus in an item editor by setting focus back to the grid.
-            dataGrid.setFocus();
+            destroyItemEditor();
         }
 
     }

        if (grid.focusManager)
            grid.focusManager.defaultButtonEnabled = false;

        if (grid.root)
            grid.systemManager.addEventListener(Event.DEACTIVATE, deactivateHandler, false, 0, true);
        

        
        // convert the row origin from the grid to the editor layer.
        var globalCellOrigin:Point = grid.localToGlobal(new Point(cellBounds.x, cellBounds.y));
        var localCellOrigin:Point = cellBounds.topLeft; //DisplayObject(dataGrid.itemEditorLayer).globalToLocal(globalCellOrigin);
        
        _editedItemRenderer = item;
        
        // Need to turn on focusable children flag so focus manager will
        // allow focus into the data grid's children.
        saveDataGridHasFocusableChildren = dataGrid.hasFocusableChildren; 
        dataGrid.hasFocusableChildren = true;
        
//        saveGridHasFocusableChildren = grid.hasFocusableChildren; 
//        grid.hasFocusableChildren = true;

        if (dataGrid.scroller)
        {
            saveScrollerHasFocusableChildren = dataGrid.scroller.hasFocusableChildren; 
            dataGrid.scroller.hasFocusableChildren = true;
        }
        
        if (!col.rendererIsEditable)
        {
