Index: trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 15885)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/properties/TagEditHelper.java	(revision 15889)
@@ -32,4 +32,6 @@
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.EnumSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -72,4 +74,5 @@
 import org.openstreetmap.josm.data.osm.OsmDataManager;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.osm.search.SearchCompiler;
@@ -86,8 +89,6 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
-import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingComboBox;
 import org.openstreetmap.josm.gui.tagging.ac.AutoCompletionManager;
-import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
 import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.util.WindowGeometry;
@@ -684,16 +685,16 @@
                 return;
             }
-            final Tag tag = new Tag(keys.getSelectedOrEditItem(), values.getSelectedOrEditItem());
-            buttons.get(0).setIcon(findIcon(tag)
+            buttons.get(0).setIcon(findIcon(keys.getSelectedOrEditItem(), values.getSelectedOrEditItem())
                     .orElse(ImageProvider.get("ok", ImageProvider.ImageSizes.LARGEICON)));
         }
 
-        protected Optional<ImageIcon> findIcon(Tag tag) {
-            final Optional<ImageIcon> taggingPresetIcon = TaggingPresets.getMatchingPresets(null, tag.getKeys(), false).stream()
-                    .map(preset -> preset.getIcon(Action.LARGE_ICON_KEY))
-                    .filter(Objects::nonNull)
-                    .findFirst();
-            // Java 9: use Optional.or
-            return taggingPresetIcon.isPresent() ? taggingPresetIcon : Optional.ofNullable(MapPaintStyles.getNodeIcon(tag, false));
+        protected Optional<ImageIcon> findIcon(String key, String value) {
+            final Iterator<OsmPrimitive> osmPrimitiveIterator = sel.iterator();
+            final OsmPrimitive virtual = (osmPrimitiveIterator.hasNext() ? osmPrimitiveIterator.next().getType() : OsmPrimitiveType.NODE)
+                    .newInstance(0, false);
+            virtual.put(key, value);
+            final ImageIcon padded = ImageProvider.getPadded(virtual, ImageProvider.ImageSizes.LARGEICON.getImageDimension(),
+                    EnumSet.of(ImageProvider.GetPaddedOptions.NO_DEFAULT, ImageProvider.GetPaddedOptions.NO_DEPRECATED));
+            return Optional.ofNullable(padded);
         }
 
@@ -963,5 +964,5 @@
                     action.setEnabled(false);
                 }
-                ImageIcon icon = findIcon(t)
+                ImageIcon icon = findIcon(t.getKey(), t.getValue())
                         // If still nothing display an empty icon
 
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 15885)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 15889)
@@ -7,4 +7,5 @@
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.EnumSet;
 import java.util.LinkedList;
 import java.util.List;
@@ -20,7 +21,4 @@
 import org.openstreetmap.josm.data.preferences.sources.SourceEntry;
 import org.openstreetmap.josm.gui.mappaint.mapcss.MapCSSStyleSource;
-import org.openstreetmap.josm.gui.mappaint.styleelement.MapImage;
-import org.openstreetmap.josm.gui.mappaint.styleelement.NodeElement;
-import org.openstreetmap.josm.gui.mappaint.styleelement.StyleElement;
 import org.openstreetmap.josm.io.CachedFile;
 import org.openstreetmap.josm.io.FileWatcher;
@@ -215,43 +213,21 @@
      * @param tag The tag to look an icon for
      * @return {@code null} if no icon found
-     */
+     * @deprecated use {@link ImageProvider#getPadded}
+     */
+    @Deprecated
     public static ImageIcon getNodeIcon(Tag tag) {
-        return getNodeIcon(tag, true);
-    }
-
-    /**
-     * Returns the node icon that would be displayed for the given tag.
-     * @param tag The tag to look an icon for
-     * @param includeDeprecatedIcon if {@code true}, the special deprecated icon will be returned if applicable
-     * @return {@code null} if no icon found, or if the icon is deprecated and not wanted
-     */
-    public static ImageIcon getNodeIcon(Tag tag, boolean includeDeprecatedIcon) {
         if (tag != null) {
             DataSet ds = new DataSet();
             Node virtualNode = new Node(LatLon.ZERO);
             virtualNode.put(tag.getKey(), tag.getValue());
-            StyleElementList styleList;
             MapCSSStyleSource.STYLE_SOURCE_LOCK.readLock().lock();
             try {
                 // Add primitive to dataset to avoid DataIntegrityProblemException when evaluating selectors
                 ds.addPrimitive(virtualNode);
-                styleList = getStyles().generateStyles(virtualNode, 0.5, false).a;
+                return ImageProvider.getPadded(virtualNode, ImageProvider.ImageSizes.SMALLICON.getImageDimension(),
+                        EnumSet.of(ImageProvider.GetPaddedOptions.NO_PRESETS, ImageProvider.GetPaddedOptions.NO_DEFAULT));
+            } finally {
                 ds.removePrimitive(virtualNode);
-            } finally {
                 MapCSSStyleSource.STYLE_SOURCE_LOCK.readLock().unlock();
-            }
-            if (styleList != null) {
-                for (StyleElement style : styleList) {
-                    if (style instanceof NodeElement) {
-                        MapImage mapImage = ((NodeElement) style).mapImage;
-                        if (mapImage != null) {
-                            if (includeDeprecatedIcon || mapImage.name == null || !DEPRECATED_IMAGE_NAMES.contains(mapImage.name)) {
-                                return new ImageIcon(mapImage.getImage(false));
-                            } else {
-                                return null; // Deprecated icon found but not wanted
-                            }
-                        }
-                    }
-                }
             }
         }
