Index: /trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 8080)
+++ /trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 8081)
@@ -7,4 +7,5 @@
 
 import java.awt.Component;
+import java.awt.DefaultFocusTraversalPolicy;
 import java.awt.Dimension;
 import java.awt.GraphicsEnvironment;
@@ -20,5 +21,4 @@
 import javax.swing.Box;
 import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JComponent;
 import javax.swing.JMenu;
 import javax.swing.JMenuBar;
@@ -797,5 +797,15 @@
         add(helpMenu, about);
         add(Box.createHorizontalGlue());
-        add(createSearchField());
+        final DisableShortcutsOnFocusGainedTextField searchField = createSearchField();
+        add(searchField);
+
+        // Do not let search field take the focus automatically
+        setFocusTraversalPolicyProvider(true);
+        setFocusTraversalPolicy(new DefaultFocusTraversalPolicy() {
+            @Override
+            protected boolean accept(Component aComponent) {
+                return super.accept(aComponent) && !searchField.equals(aComponent);
+            }
+        });
 
         windowMenu.addMenuListener(menuSeparatorHandler);
@@ -818,5 +828,5 @@
      * Create search field.
      */
-    private JComponent createSearchField() {
+    private DisableShortcutsOnFocusGainedTextField createSearchField() {
         DisableShortcutsOnFocusGainedTextField searchField = new DisableShortcutsOnFocusGainedTextField() {
             @Override
@@ -996,5 +1006,5 @@
             currentSearchText = searchTerm;
             if (searchTerm.length() == 0) {
-                //No text to search
+                // No text to search
                 hideMenu();
                 return;
@@ -1003,5 +1013,5 @@
             List<JMenuItem> searchResult = mainMenu.findMenuItems(currentSearchText);
             if(searchResult.size() == 0) {
-                //Nothing found
+                // Nothing found
                 hideMenu();
                 return;
@@ -1009,17 +1019,19 @@
 
             if(searchResult.size() > 20) {
-                //Too many items found...
+                // Too many items found...
                 searchResult = searchResult.subList(0, 20);
             }
 
-            //Update Popup menu
+            // Update Popup menu
             searchResultsMenu.removeAll();
             for (JMenuItem foundItem : searchResult) {
                 searchResultsMenu.add(foundItem.getText()).setAction(foundItem.getAction());
             }
+            // Put menu right under search field
             searchResultsMenu.pack();
-            searchResultsMenu.show(mainMenu, searchField.getX(), searchField.getY() + searchField.getHeight()); //Put menu right under search field
-
-            searchField.grabFocus(); //This is tricky. User still is able to edit search text. While Up and Down keys are handled by Popup Menu.
+            searchResultsMenu.show(mainMenu, searchField.getX(), searchField.getY() + searchField.getHeight());
+
+            // This is tricky. User still is able to edit search text. While Up and Down keys are handled by Popup Menu.
+            searchField.requestFocusInWindow();
         }
 
@@ -1027,5 +1039,4 @@
             searchResultsMenu.setVisible(false);
         }
-
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 8080)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ToggleDialog.java	(revision 8081)
@@ -587,8 +587,4 @@
                             dialogsPanel.reconstruct(Action.ELEMENT_SHRINKS, null);
                             hideNotify();
-                            if (Main.map != null) {
-                                // To avoid menu bar search field from taking focus when a toggle dialog is closed
-                                Main.map.requestFocusInWindow();
-                            }
                         }
                     }
