Index: trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 4404)
+++ trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java	(revision 4405)
@@ -58,4 +58,5 @@
     private String attributionLinkURL;
     private String termsOfUseURL;
+    private String countryCode = "";
 
     public ImageryInfo() {
@@ -166,9 +167,12 @@
     public int compareTo(ImageryInfo in)
     {
-        int i = name.compareTo(in.name);
-        if(i == 0) {
+        int i = countryCode.compareTo(in.countryCode);
+        if (i == 0) {
+            i = name.compareTo(in.name);
+        }
+        if (i == 0) {
             i = url.compareTo(in.url);
         }
-        if(i == 0) {
+        if (i == 0) {
             i = Double.compare(pixelPerDegree, in.pixelPerDegree);
         }
@@ -295,4 +299,12 @@
     }
 
+    public String getCountryCode() {
+        return countryCode;
+    }
+
+    public void setCountryCode(String countryCode) {
+        this.countryCode = countryCode;
+    }
+
     /**
      * Get the projections supported by the server. Only relevant for
Index: trunk/src/org/openstreetmap/josm/gui/preferences/ImageryPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/ImageryPreference.java	(revision 4404)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/ImageryPreference.java	(revision 4405)
@@ -390,6 +390,7 @@
 
             TableColumnModel mod = listdef.getColumnModel();
-            mod.getColumn(1).setPreferredWidth(800);
-            mod.getColumn(0).setPreferredWidth(200);
+            mod.getColumn(2).setPreferredWidth(800);
+            mod.getColumn(1).setPreferredWidth(400);
+            mod.getColumn(0).setPreferredWidth(50);
             mod = listActive.getColumnModel();
             mod.getColumn(2).setPreferredWidth(50);
@@ -641,5 +642,5 @@
         class ImageryDefaultLayerTableModel extends DefaultTableModel {
             public ImageryDefaultLayerTableModel() {
-                setColumnIdentifiers(new String[] { tr("Menu Name (Default)"), tr("Imagery URL (Default)") });
+                setColumnIdentifiers(new String[]{"", tr("Menu Name (Default)"), tr("Imagery URL (Default)")});
             }
 
@@ -658,6 +659,8 @@
                 switch (column) {
                 case 0:
+                    return info.getCountryCode();
+                case 1:
                     return info.getName();
-                case 1:
+                case 2:
                     return info.getExtendedUrl();
                 }
Index: trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java	(revision 4404)
+++ trunk/src/org/openstreetmap/josm/io/imagery/ImageryReader.java	(revision 4405)
@@ -236,4 +236,5 @@
                         "terms-of-use-text",
                         "terms-of-use-url",
+                        "country-code",
                     }).contains(qName)) {
                         newState = State.ENTRY_ATTRIBUTE;
@@ -353,4 +354,7 @@
                     } else if (qName.equals("terms-of-use-url")) {
                         entry.setTermsOfUseURL(accumulator.toString());
+                    } else if (qName.equals("country-code")) {
+                        entry.setCountryCode(accumulator.toString());
+                    } else {
                     }
                     break;
