Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 16921)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 16922)
@@ -7,5 +7,4 @@
 import java.awt.Component;
 import java.awt.Composite;
-import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.FontMetrics;
@@ -86,5 +85,4 @@
 import org.openstreetmap.josm.tools.Geometry.AreaAndPerimeter;
 import org.openstreetmap.josm.tools.HiDPISupport;
-import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.JosmRuntimeException;
 import org.openstreetmap.josm.tools.Logging;
@@ -797,5 +795,5 @@
         }
 
-        drawIcon(p, img, disabled, selected, member, theta, (g, r) -> {
+        drawIcon(p.getInViewX(), p.getInViewY(), img, disabled, selected, member, theta, (g, r) -> {
             Color color = getSelectionHintColor(disabled, selected);
             g.setColor(color);
@@ -825,5 +823,5 @@
             }
             MapViewPoint p = placement.getPoint();
-            drawIcon(p, img, disabled, selected, member, theta + placement.getRotation(), (g, r) -> {
+            drawIcon(p.getInViewX(), p.getInViewY(), img, disabled, selected, member, theta + placement.getRotation(), (g, r) -> {
                 if (useStrokes) {
                     g.setStroke(new BasicStroke(2));
@@ -838,5 +836,5 @@
     }
 
-    private void drawIcon(MapViewPoint p, MapImage img, boolean disabled, boolean selected, boolean member, double theta,
+    private void drawIcon(final double x, final double y, MapImage img, boolean disabled, boolean selected, boolean member, double theta,
             BiConsumer<Graphics2D, Rectangle2D> selectionDrawer) {
         float alpha = img.getAlphaFloat();
@@ -847,7 +845,5 @@
         }
 
-        double x = Math.round(p.getInViewX());
-        double y = Math.round(p.getInViewY());
-        temporaryGraphics.translate(x, y);
+        temporaryGraphics.translate(Math.round(x), Math.round(y));
         temporaryGraphics.rotate(theta);
         int drawX = -img.getWidth() / 2 + img.offsetX;
@@ -955,26 +951,4 @@
             g.fill(new RoundRectangle2D.Double(p.getX()-r, p.getY()-r, s, s, r, r));
             s -= step;
-        }
-    }
-
-    /**
-     * Draws a restriction.
-     * @param img symbol image
-     * @param pVia "via" node
-     * @param vx X offset
-     * @param vy Y offset
-     * @param angle the rotated angle, in degree, clockwise
-     * @param selected if true, draws a selection rectangle
-     * @since 13676
-     */
-    public void drawRestriction(Image img, Point pVia, double vx, double vy, double angle, boolean selected) {
-        // rotate image with direction last node in from to, and scale down image to 16*16 pixels
-        Image smallImg = ImageProvider.createRotatedImage(img, angle, new Dimension(16, 16));
-        int w = smallImg.getWidth(null), h = smallImg.getHeight(null);
-        g.drawImage(smallImg, (int) (pVia.x+vx)-w/2, (int) (pVia.y+vy)-h/2, nc);
-
-        if (selected) {
-            g.setColor(isInactiveMode ? inactiveColor : relationSelectedColor);
-            g.drawRect((int) (pVia.x+vx)-w/2-2, (int) (pVia.y+vy)-h/2-2, w+4, h+4);
         }
     }
@@ -1150,6 +1124,9 @@
         }
 
-        drawRestriction(icon.getImage(disabled),
-                pVia, vx+vx2, vy+vy2, iconAngle, r.isSelected());
+        drawIcon(
+                pVia.x + vx + vx2,
+                pVia.y + vy + vy2,
+                icon, disabled, false, false, Math.toRadians(iconAngle), (graphics2D, rectangle2D) -> {
+                });
     }
 
