Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 11725)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 11726)
@@ -1532,9 +1532,10 @@
         settingsMap.keySet().stream()
                 .filter(key -> key.startsWith("color."))
-                .flatMap(key -> {
+                .map(key -> {
                     final String newKey = ColorProperty.getColorKey(key.substring("color.".length()));
-                    return key.equals(newKey) || settingsMap.containsKey(newKey)
-                            ? Stream.empty()
-                            : Stream.of(new AbstractMap.SimpleImmutableEntry<>(key, newKey));
+                    return new AbstractMap.SimpleImmutableEntry<>(key, newKey);
+                })
+                .filter(entry -> {
+                    return !entry.getKey().equals(entry.getValue()) && !settingsMap.containsKey(entry.getValue());
                 })
                 .collect(Collectors.toList()) // to avoid ConcurrentModificationException
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/RenderBenchmarkCollector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/RenderBenchmarkCollector.java	(revision 11725)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/RenderBenchmarkCollector.java	(revision 11726)
@@ -37,5 +37,5 @@
     /**
      * Notified when the renderer method starts drawing
-     * @param allStyleElems All the elements that are painted.
+     * @param allStyleElems All the elements that are painted. Unsorted
      * @return <code>true</code> if the renderer should continue to render
      */
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaElement.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaElement.java	(revision 11725)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/AreaElement.java	(revision 11726)
@@ -15,5 +15,4 @@
 import org.openstreetmap.josm.gui.mappaint.Environment;
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.IconReference;
-import org.openstreetmap.josm.gui.util.RotationAngle;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.Utils;
@@ -63,16 +62,5 @@
     public Float extentThreshold;
 
-    /**
-     * The icon that is displayed on the center of the area.
-     */
-    private final MapImage iconImage;
-
-    /**
-     * The rotation of the {@link #iconImageAngle}
-     */
-    private final RotationAngle iconImageAngle;
-
-    protected AreaElement(Cascade c, Color color, MapImage fillImage, Float extent,
-            Float extentThreshold, TextLabel text, MapImage iconImage, RotationAngle iconImageAngle) {
+    protected AreaElement(Cascade c, Color color, MapImage fillImage, Float extent, Float extentThreshold, TextLabel text) {
         super(c, 1f);
         CheckParameterUtil.ensureParameterNotNull(color);
@@ -82,6 +70,4 @@
         this.extentThreshold = extentThreshold;
         this.text = text;
-        this.iconImage = iconImage;
-        this.iconImageAngle = iconImageAngle;
     }
 
@@ -119,11 +105,4 @@
 
         TextLabel text = null; // <- text is handled by TextElement
-        MapImage iconImage = NodeElement.createIcon(env);
-        RotationAngle rotationAngle = NodeElement.createRotationAngle(env);
-
-        if (iconImage != null) {
-            // fake a transparent color.
-            color = new Color(0, 0, 0, 0);
-        }
 
         if (color != null) {
@@ -131,5 +110,5 @@
             Float extentThreshold = c.get(FILL_EXTENT_THRESHOLD, null, float.class);
 
-            return new AreaElement(c, color, fillImage, extent, extentThreshold, text, iconImage, rotationAngle);
+            return new AreaElement(c, color, fillImage, extent, extentThreshold, text);
         } else {
             return null;
@@ -156,9 +135,4 @@
             painter.drawArea((Relation) osm, myColor, fillImage, extent, extentThreshold, painter.isInactiveMode() || osm.isDisabled(), text);
         }
-
-        if (iconImage != null && painter.isShowIcons()) {
-            painter.drawAreaIcon(osm, iconImage, painter.isInactiveMode() || osm.isDisabled(), selected, member,
-                    iconImageAngle == null ? 0.0 : iconImageAngle.getRotationAngle(osm));
-        }
     }
 
@@ -173,12 +147,10 @@
                 Objects.equals(text, that.text) &&
                 Objects.equals(extent, that.extent) &&
-                Objects.equals(extentThreshold, that.extentThreshold) &&
-                Objects.equals(iconImage, that.iconImage) &&
-                Objects.equals(iconImageAngle, that.iconImageAngle);
+                Objects.equals(extentThreshold, that.extentThreshold);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(super.hashCode(), color, fillImage, text, extent, extentThreshold, iconImage, iconImageAngle);
+        return Objects.hash(super.hashCode(), color, fillImage, text, extent, extentThreshold);
     }
 
@@ -186,5 +158,5 @@
     public String toString() {
         return "AreaElemStyle{" + super.toString() + "color=" + Utils.toString(color) +
-                " fillImage=[" + fillImage + "] iconImage=[" + iconImage + "] iconImageAngle=[" + iconImageAngle + "]}";
+                " fillImage=[" + fillImage + "]}";
     }
 }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java	(revision 11725)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/styleelement/NodeElement.java	(revision 11726)
@@ -66,5 +66,5 @@
         this.mapImage = mapImage;
         this.symbol = symbol;
-        this.mapImageAngle = rotationAngle;
+        this.mapImageAngle = Objects.requireNonNull(rotationAngle, "rotationAngle");
     }
 
@@ -106,5 +106,5 @@
         Cascade c = env.mc.getCascade(env.layer);
 
-        RotationAngle rotationAngle = null;
+        RotationAngle rotationAngle = RotationAngle.NO_ROTATION;
         final Float angle = c.get(ICON_ROTATION, null, Float.class, true);
         if (angle != null) {
Index: trunk/src/org/openstreetmap/josm/gui/util/RotationAngle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/util/RotationAngle.java	(revision 11725)
+++ trunk/src/org/openstreetmap/josm/gui/util/RotationAngle.java	(revision 11726)
@@ -116,4 +116,10 @@
         }
     }
+
+    /**
+     * A no-rotation angle that always returns 0.
+     * @since 11726
+     */
+    static RotationAngle NO_ROTATION = new StaticRotationAngle(0);
 
     /**
