                 if (itemEditorInstance && itemEditorInstance is UIComponent)
                     UIComponent(itemEditorInstance).drawFocus(false);
 
-                // must call removeChild() so FocusManager.lastFocus becomes null
+				// setfocus back to us so something on stage has focus
+				deferFocus();
+				
+				// must call removeChild() so FocusManager.lastFocus becomes null
                 itemEditorInstance.parent.removeChild(DisplayObject(itemEditorInstance));
 
                 // we are not setting the item renderer's visibility to false while creating an editor,

	                if (_columns[_editedItemPosition.columnIndex].editable &&
	                    _columns[_editedItemPosition.columnIndex].visible)
	                {
                        foundOne = true;
                        break;
	                }
	            }


                index += incr;
                if (index > maxIndex || index < 0)
                {
					if (endEdit(AdvancedDataGridEventReason.NEW_ROW))
					{
						// if we've fallen off the rows, we need to leave the grid. get rid of the editor
						setEditedItemPosition(null);
						
						// set focus back to the grid so default handler will move it to the next component
						deferFocus();
						return false;
					}
                    return true;
                }
            }

