Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java	(revision 5162)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/properties/PresetListPanel.java	(revision 5163)
@@ -87,5 +87,5 @@
 
         for (TaggingPreset t : TaggingPresetPreference.taggingPresets) {
-            if (!t.matches(types, tags)) {
+            if (!t.matches(types, tags, true)) {
                 continue;
             }
Index: /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 5162)
+++ /trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 5163)
@@ -1680,6 +1680,6 @@
     }
 
-    public boolean matches(Collection<PresetType> t, Map<String, String> tags) {
-        if (!isShowable()) {
+    public boolean matches(Collection<PresetType> t, Map<String, String> tags, boolean onlyShowable) {
+        if (onlyShowable && !isShowable()) {
             return false;
         } else if (t != null && types != null && !types.containsAll(t)) {
Index: /trunk/src/org/openstreetmap/josm/tools/TaggingPresetNameTemplateList.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/TaggingPresetNameTemplateList.java	(revision 5162)
+++ /trunk/src/org/openstreetmap/josm/tools/TaggingPresetNameTemplateList.java	(revision 5163)
@@ -39,5 +39,5 @@
 
         for (TaggingPreset t : presetsWithPattern) {
-            if (t.matches(EnumSet.of(PresetType.forPrimitive(primitive)), primitive.getKeys())) {
+            if (t.matches(EnumSet.of(PresetType.forPrimitive(primitive)), primitive.getKeys(), false)) {
                 return t;
             }
