Index: resources/styles/default/inc/address
===================================================================
--- resources/styles/default/inc/address	(revision 3356)
+++ resources/styles/default/inc/address	(working copy)
@@ -5,8 +5,8 @@
 
 # first set the country code
 mkgmap:country!=* & mkgmap:admin_level2=* { set mkgmap:country='${mkgmap:admin_level2}' }
-mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' }
-mkgmap:country!=* & is_in:country=* { set mkgmap:country='${is_in:country}' }
+mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country|country-ISO:}' }
+mkgmap:country!=* & is_in:country=* { set mkgmap:country='${is_in:country|country--ISO:}' }
 
 # country specific rules first
 
Index: src/uk/me/parabola/mkgmap/osmstyle/actions/CountryISOFilter.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/actions/CountryISOFilter.java	(revision 0)
+++ src/uk/me/parabola/mkgmap/osmstyle/actions/CountryISOFilter.java	(working copy)
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2014.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3 or
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ */
+package uk.me.parabola.mkgmap.osmstyle.actions;
+
+import uk.me.parabola.mkgmap.build.LocatorConfig;
+import uk.me.parabola.mkgmap.reader.osm.Element;
+
+/**
+ * Convert a string containing a country name or ISO string to the 3 character ISO string.
+ * Samples: Deutschland->DEU, UK->GBR
+ *
+ * @author GerdP
+ */
+public class CountryISOFilter extends ValueFilter {
+
+	public CountryISOFilter() {
+	}
+
+	protected String doFilter(String value, Element el) {
+		if (value == null)
+			return value;
+		String s = LocatorConfig.get().getCountryISOCode(value);
+		if (s != null)
+			return s;
+		else 
+			return value;
+	}
+}
Index: src/uk/me/parabola/mkgmap/osmstyle/actions/ValueBuilder.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/actions/ValueBuilder.java	(revision 3356)
+++ src/uk/me/parabola/mkgmap/osmstyle/actions/ValueBuilder.java	(working copy)
@@ -23,6 +23,7 @@
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import uk.me.parabola.log.Logger;
 import uk.me.parabola.mkgmap.reader.osm.Element;
 
 /**
@@ -32,6 +33,7 @@
  * @author Toby Speight
  */
 public class ValueBuilder {
+	private static final Logger log = Logger.getLogger(ValueBuilder.class);
 	private static final Pattern[] FILTER_ARG_PATTERNS = {
 			Pattern.compile("[ \t]*([^: \\t|]+:\"[^\"]+\")[ \t]*"),
 			Pattern.compile("[ \t]*([^: \\t|]+:'[^']+')[ \t]*"),
@@ -224,7 +226,15 @@
 		case "part":
 			item.addFilter(new PartFilter(arg));
 			break;
+		case "country-ISO":
+			item.addFilter(new CountryISOFilter());
+			break;
+		default:
+			System.err.println("Style uses unknown filter: >" + expr + "<");
+			break;
+				
 		}
+		
 	}
 
 	public String toString() {
