Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 3067)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 3068)
@@ -220,15 +220,9 @@
             switch(getSelectedColumnCount()) {
             case 1:
-                if (isEditing()) {
-                    getCellEditor().cancelCellEditing();
-                    deleteTags();
-                } else if (getSelectedColumn() == 0) {
+                if (getSelectedColumn() == 0) {
                     deleteTagNames();
                 } else if (getSelectedColumn() == 1) {
                     deleteTagValues();
-                } else
-                    // should not happen
-                    //
-                    throw new IllegalStateException("unexpected selected column: getSelectedColumn() is " + getSelectedColumn());
+                }
                 break;
             case 2:
@@ -390,4 +384,10 @@
         //
         if (e.getKeyCode() == KeyEvent.VK_DELETE) {
+            if (isEditing() && getSelectedColumnCount() == 1 && getSelectedRowCount() == 1)
+                // if DEL was pressed and only the currently edited cell is selected,
+                // don't run the delete action. DEL is handled by the CellEditor as normal
+                // DEL in the text input.
+                //
+                return super.processKeyBinding(ks, e, condition, pressed);
             getDeleteAction().run();
         }
