Index: trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java
===================================================================
--- trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 8939)
+++ trunk/src/org/openstreetmap/josm/command/ChangePropertyCommand.java	(revision 8941)
@@ -17,5 +17,5 @@
 import javax.swing.Icon;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
@@ -106,6 +106,8 @@
     }
 
-    @Override public boolean executeCommand() {
-        Main.main.getCurrentDataSet().beginUpdate();
+    @Override
+    public boolean executeCommand() {
+        final DataSet dataSet = objects.get(0).getDataSet();
+        dataSet.beginUpdate();
         try {
             super.executeCommand(); // save old
@@ -129,9 +131,10 @@
             return true;
         } finally {
-            Main.main.getCurrentDataSet().endUpdate();
-        }
-    }
-
-    @Override public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
+            dataSet.endUpdate();
+        }
+    }
+
+    @Override
+    public void fillModifiedData(Collection<OsmPrimitive> modified, Collection<OsmPrimitive> deleted, Collection<OsmPrimitive> added) {
         modified.addAll(objects);
     }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java	(revision 8939)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java	(revision 8941)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.data.osm.OsmUtils;
 import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.data.validation.FixableTestError;
 import org.openstreetmap.josm.data.validation.Severity;
 import org.openstreetmap.josm.data.validation.Test;
@@ -39,4 +40,6 @@
     protected static final int SOURCE_MAXSPEED_CONTEXT_MISMATCH_VS_HIGHWAY = 2706;
     protected static final int SOURCE_WRONG_LINK = 2707;
+
+    protected static final String SOURCE_MAXSPEED = "source:maxspeed";
 
     /**
@@ -92,5 +95,5 @@
                 testMissingPedestrianCrossing(n);
             }
-            if (n.hasKey("source:maxspeed")) {
+            if (n.hasKey(SOURCE_MAXSPEED)) {
                 // Check maxspeed but not context against highway for nodes
                 // as maxspeed is not set on highways here but on signs, speed cameras, etc.
@@ -107,5 +110,5 @@
                 testWrongRoundabout(w);
             }
-            if (w.hasKey("source:maxspeed")) {
+            if (w.hasKey(SOURCE_MAXSPEED)) {
                 // Check maxspeed, including context against highway
                 testSourceMaxspeed(w, true);
@@ -240,5 +243,5 @@
 
     private void testSourceMaxspeed(OsmPrimitive p, boolean testContextHighway) {
-        String value = p.get("source:maxspeed");
+        String value = p.get(SOURCE_MAXSPEED);
         if (value.matches("[A-Z]{2}:.+")) {
             int index = value.indexOf(':');
@@ -246,6 +249,12 @@
             String country = value.substring(0, index);
             if (!ISO_COUNTRIES.contains(country)) {
-                errors.add(new TestError(this, Severity.WARNING,
-                        tr("Unknown country code: {0}", country), SOURCE_MAXSPEED_UNKNOWN_COUNTRY_CODE, p));
+                if ("UK".equals(country)) {
+                    errors.add(new FixableTestError(this, Severity.WARNING,
+                            tr("Unknown country code: {0}", country), SOURCE_MAXSPEED_UNKNOWN_COUNTRY_CODE, p,
+                            new ChangePropertyCommand(p, SOURCE_MAXSPEED, value.replace("UK:", "GB:"))));
+                } else {
+                    errors.add(new TestError(this, Severity.WARNING,
+                            tr("Unknown country code: {0}", country), SOURCE_MAXSPEED_UNKNOWN_COUNTRY_CODE, p));
+                }
             }
             // Check context
