Index: trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 6062)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TagTable.java	(revision 6063)
@@ -5,16 +5,10 @@
 
 import java.applet.Applet;
-import java.awt.AWTException;
 import java.awt.Component;
 import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.KeyboardFocusManager;
-import java.awt.MouseInfo;
-import java.awt.Point;
-import java.awt.Rectangle;
-import java.awt.Robot;
 import java.awt.Window;
 import java.awt.event.ActionEvent;
-import java.awt.event.InputEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.KeyListener;
@@ -37,4 +31,5 @@
 import javax.swing.table.DefaultTableColumnModel;
 import javax.swing.table.TableColumn;
+import javax.swing.text.JTextComponent;
 
 import org.openstreetmap.josm.gui.dialogs.relation.RunnableAction;
@@ -132,4 +127,5 @@
     class SelectPreviousColumnCellAction extends AbstractAction  {
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             int col = getSelectedColumn();
@@ -244,4 +240,5 @@
          * listens to the table selection model
          */
+        @Override
         public void valueChanged(ListSelectionEvent e) {
             updateEnabledState();
@@ -289,4 +286,5 @@
         }
 
+        @Override
         public void propertyChange(PropertyChangeEvent evt) {
             updateEnabledState();
@@ -447,34 +445,15 @@
 
     public void requestFocusInCell(final int row, final int col) {
-
-        // the following code doesn't work reliably. If a table cell
-        // gains focus using editCellAt() and requestFocusInWindow()
-        // it isn't possible to tab to the next table cell using TAB or
-        // ENTER. Don't know why.
-        //
-        // tblTagEditor.editCellAt(row, col);
-        // if (tblTagEditor.getEditorComponent() != null) {
-        //  tblTagEditor.getEditorComponent().requestFocusInWindow();
-        // }
-
-        // this is a workaround. We move the focus to the respective cell
-        // using a simulated mouse click. In this case one can tab out of
-        // the cell using TAB and ENTER.
-        //
-        Rectangle r = getCellRect(row,col, false);
-        Point p = new Point(r.x + r.width/2, r.y + r.height/2);
-        SwingUtilities.convertPointToScreen(p, this);
-        Point before = MouseInfo.getPointerInfo().getLocation();
-
-        try {
-            Robot robot = new Robot();
-            robot.mouseMove(p.x,p.y);
-            robot.mousePress(InputEvent.BUTTON1_MASK);
-            robot.mouseRelease(InputEvent.BUTTON1_MASK);
-            robot.mouseMove(before.x, before.y);
-        } catch(AWTException e) {
-            System.out.println("Failed to simulate mouse click event at (" + r.x + "," + r.y + "). Exception: " + e.toString());
-            return;
-        }
+        editCellAt(row, col);
+        Component c = getEditorComponent();
+        if (c!=null) {
+            c.requestFocusInWindow();
+            if ( c instanceof JTextComponent ) {
+                 ( (JTextComponent)c ).selectAll();
+            }
+        }
+        // there was a bug here - on older 1.6 Java versions Tab was not working
+        // after such activation. In 1.7 it works OK, 
+        // previous solution of usint awt.Robot was resetting mouse speed on Windows
     }
 
@@ -553,4 +532,5 @@
         }
 
+        @Override
         public void propertyChange(PropertyChangeEvent ev) {
             if (!isEditing())
