Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java	(revision 9421)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchDialog.java	(revision 9422)
@@ -57,5 +57,5 @@
         super.buttonAction(buttonIndex, evt);
         if (buttonIndex == 0) {
-            TaggingPreset preset = selector.getSelectedPreset();
+            TaggingPreset preset = selector.getSelectedPresetAndUpdateClassification();
             if (preset != null) {
                 preset.actionPerformed(null);
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java	(revision 9421)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSearchPrimitiveDialog.java	(revision 9422)
@@ -86,5 +86,5 @@
         super.buttonAction(buttonIndex, evt);
         if (buttonIndex == 0) {
-            TaggingPreset preset = selector.getSelectedPreset();
+            TaggingPreset preset = selector.getSelectedPresetAndUpdateClassification();
             if (preset != null) {
                 final Set<OsmPrimitive> matching = new HashSet<>(Utils.filter(Main.main.getCurrentDataSet().allPrimitives(), preset));
Index: trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java	(revision 9421)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetSelector.java	(revision 9422)
@@ -222,5 +222,5 @@
             @Override
             public void actionPerformed(ActionEvent ae) {
-                final TaggingPreset preset = lsResult.getSelectedValue();
+                final TaggingPreset preset = getSelectedPreset();
                 if (preset != null) {
                     Main.toolbar.addCustomButton(preset.getToolbarString(), -1, false);
@@ -246,5 +246,5 @@
                 text, onlyApplicable, inTags, getTypesInSelection(), selected);
 
-        final TaggingPreset oldPreset = lsResult.getSelectedValue();
+        final TaggingPreset oldPreset = getSelectedPreset();
         lsResultModel.setItems(Utils.transform(result, new Utils.Function<PresetClassification, TaggingPreset>() {
             @Override
@@ -253,5 +253,5 @@
             }
         }));
-        final TaggingPreset newPreset = lsResult.getSelectedValue();
+        final TaggingPreset newPreset = getSelectedPreset();
         if (!Objects.equals(oldPreset, newPreset)) {
             int[] indices = lsResult.getSelectedIndices();
@@ -414,5 +414,5 @@
 
     /**
-     * Determines, which preset is selected at the moment. Updates {@link PresetClassification#favoriteIndex}!
+     * Determines, which preset is selected at the moment.
      * @return selected preset (as action)
      */
@@ -423,5 +423,13 @@
             idx = 0;
         }
-        TaggingPreset preset = lsResultModel.getElementAt(idx);
+        return lsResultModel.getElementAt(idx);
+    }
+
+    /**
+     * Determines, which preset is selected at the moment. Updates {@link PresetClassification#favoriteIndex}!
+     * @return selected preset (as action)
+     */
+    public synchronized TaggingPreset getSelectedPresetAndUpdateClassification() {
+        final TaggingPreset preset = getSelectedPreset();
         for (PresetClassification pc: classifications) {
             if (pc.preset == preset) {
