Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 16589)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyles.java	(revision 16590)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.MultipolygonCache;
+import org.openstreetmap.josm.data.preferences.NamedColorProperty;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.NavigatableComponent;
@@ -40,4 +41,5 @@
 import org.openstreetmap.josm.spi.preferences.PreferenceChangeEvent;
 import org.openstreetmap.josm.spi.preferences.PreferenceChangedListener;
+import org.openstreetmap.josm.tools.ColorHelper;
 import org.openstreetmap.josm.tools.Pair;
 
@@ -604,4 +606,8 @@
      * each primitive can be slow during rendering.
      *
+     * If the default value can be {@linkplain Cascade#convertTo converted} to a {@link Color},
+     * the {@link NamedColorProperty} is retrieved as string.
+     *
+     * @param source style source
      * @param key preference key
      * @param def default value
@@ -609,10 +615,17 @@
      * @see org.openstreetmap.josm.data.Preferences#get(String, String)
      */
-    public String getPreferenceCached(String key, String def) {
+    public String getPreferenceCached(StyleSource source, String key, String def) {
         String res;
         if (preferenceCache.containsKey(key)) {
             res = preferenceCache.get(key);
         } else {
-            res = Config.getPref().get(key, null);
+            Color realDef = Cascade.convertTo(def, Color.class);
+            if (realDef != null) {
+                String prefName = source != null ? source.getFileNamePart() : "unknown";
+                NamedColorProperty property = new NamedColorProperty(NamedColorProperty.COLOR_CATEGORY_MAPPAINT, prefName, key, realDef);
+                res = ColorHelper.color2html(property.get());
+            } else {
+                res = Config.getPref().get(key, null);
+            }
             preferenceCache.put(key, res);
         }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java	(revision 16589)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java	(revision 16590)
@@ -28,4 +28,5 @@
 import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
 import org.openstreetmap.josm.data.osm.search.SearchParseError;
+import org.openstreetmap.josm.data.preferences.NamedColorProperty;
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.mappaint.Cascade;
@@ -768,4 +769,8 @@
      * Obtains the JOSM'key {@link org.openstreetmap.josm.data.Preferences} string for key {@code key},
      * and defaults to {@code def} if that is null.
+     *
+     * If the default value can be {@linkplain Cascade#convertTo converted} to a {@link Color},
+     * the {@link NamedColorProperty} is retrieved as string.
+     *
      * @param env the environment
      * @param key Key in JOSM preference
@@ -774,5 +779,5 @@
      */
     public static String JOSM_pref(Environment env, String key, String def) { // NO_UCD (unused code)
-        return MapPaintStyles.getStyles().getPreferenceCached(key, def);
+        return MapPaintStyles.getStyles().getPreferenceCached(env != null ? env.source : null, key, def);
     }
 
