Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java	(revision 800)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java	(revision 801)
@@ -9,4 +9,5 @@
 
 import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.Main;
 import org.xml.sax.Attributes;
 import org.xml.sax.helpers.DefaultHandler;
@@ -32,10 +33,16 @@
 	}
 
-	/*
-    ElemStyles getElemStyles()
-    {
-        return styles;
-    }
-	*/
+	Color convertColor(String colString)
+	{
+		int i = colString.indexOf("#");
+		String colorString;
+		if(i < 0) // name only
+			colorString = Main.pref.get("color.mappaint."+colString);
+		else if(i == 0) // value only
+			colorString = colString;
+		else // value and name
+			colorString = Main.pref.get("color.mappaint."+colString.substring(0,i), colString.substring(i));
+		return ColorHelper.html2color(colorString);
+	}
 
 	@Override public void startDocument() {
@@ -73,5 +80,5 @@
 						curLineWidth = Integer.parseInt(atts.getValue(count));
 					else if (atts.getQName(count).equals("colour"))
-						curLineColour=ColorHelper.html2color(atts.getValue(count));
+						curLineColour=convertColor(atts.getValue(count));
 					else if (atts.getQName(count).equals("realwidth"))
 						curLineRealWidth=Integer.parseInt(atts.getValue(count));
@@ -123,5 +130,5 @@
 				{
 					if (atts.getQName(count).equals("colour"))
-						curAreaColour=ColorHelper.html2color(atts.getValue(count));
+						curAreaColour=convertColor(atts.getValue(count));
 				}
 			}
