Index: trunk/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java	(revision 11705)
+++ trunk/src/org/openstreetmap/josm/data/imagery/ImageryLayerInfo.java	(revision 11706)
@@ -185,5 +185,5 @@
             Collections.sort(allDefaultLayers);
             buildIdMap(allDefaultLayers, defaultLayerIds);
-            updateEntriesFromDefaults();
+            updateEntriesFromDefaults(!loadError);
             buildIdMap(layers, layerIds);
             if (!loadError && !defaultLayerIds.isEmpty()) {
@@ -219,16 +219,25 @@
     /**
      * Update user entries according to the list of default entries.
-     */
-    public void updateEntriesFromDefaults() {
+     * @param dropold if <code>true</code> old entries should be removed
+     * @since 11706
+     */
+    public void updateEntriesFromDefaults(boolean dropold) {
         // add new default entries to the user selection
         boolean changed = false;
-        Collection<String> knownDefaults = Main.pref.getCollection("imagery.layers.default");
-        Collection<String> newKnownDefaults = new TreeSet<>(knownDefaults);
+        Collection<String> knownDefaults = new TreeSet<>(Main.pref.getCollection("imagery.layers.default"));
+        Collection<String> newKnownDefaults = new TreeSet<>();
         for (ImageryInfo def : defaultLayers) {
             if (def.isDefaultEntry()) {
                 boolean isKnownDefault = false;
-                for (String url : knownDefaults) {
-                    if (isSimilar(url, def.getUrl())) {
+                for (String entry : knownDefaults) {
+                    if (isSimilar(entry, def.getId())) {
                         isKnownDefault = true;
+                        newKnownDefaults.add(entry);
+                        knownDefaults.remove(entry);
+                        break;
+                    } else if (isSimilar(entry, def.getUrl())) {
+                        isKnownDefault = true;
+                        newKnownDefaults.add(def.getId());
+                        knownDefaults.remove(entry);
                         break;
                     }
@@ -236,5 +245,9 @@
                 boolean isInUserList = false;
                 if (!isKnownDefault) {
-                    newKnownDefaults.add(def.getUrl());
+                    if (def.getId() != null) {
+                        newKnownDefaults.add(def.getId());
+                    } else {
+                        newKnownDefaults.add(def.getUrl());
+                    }
                     for (ImageryInfo i : layers) {
                         if (isSimilar(def, i)) {
@@ -249,4 +262,7 @@
                 }
             }
+        }
+        if (!dropold && !knownDefaults.isEmpty()) {
+            newKnownDefaults.addAll(knownDefaults);
         }
         Main.pref.putCollection("imagery.layers.default", newKnownDefaults);
