Index: trunk/src/org/openstreetmap/josm/actions/TaggingPresetSearchAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/TaggingPresetSearchAction.java	(revision 16284)
+++ trunk/src/org/openstreetmap/josm/actions/TaggingPresetSearchAction.java	(revision 16285)
@@ -30,9 +30,16 @@
     @Override
     public void actionPerformed(ActionEvent e) {
+        if (hasActiveDataLayer()) {
+            TaggingPresetSearchDialog.getInstance().showDialog();
+        }
+    }
 
-        if (MainApplication.getLayerManager().getActiveData() == null)
-            return;
+    @Override
+    protected void updateEnabledState() {
+        setEnabled(hasActiveDataLayer());
+    }
 
-        TaggingPresetSearchDialog.getInstance().showDialog();
+    private boolean hasActiveDataLayer() {
+        return getLayerManager().getActiveData() != null;
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/MainMenu.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 16284)
+++ trunk/src/org/openstreetmap/josm/gui/MainMenu.java	(revision 16285)
@@ -899,5 +899,5 @@
         windowMenu.addMenuListener(menuSeparatorHandler);
 
-        new EditLayerMenuEnabler(Arrays.asList(modeMenu, presetsMenu));
+        new EditLayerMenuEnabler(Arrays.asList(modeMenu, toolsMenu, moreToolsMenu, selectionMenu));
     }
     // CHECKSTYLE.ON: ExecutableStatementCountCheck
