Index: src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(revision 7765)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/GeoImageLayer.java	(working copy)
@@ -400,6 +400,7 @@
         }
 
         setName(l.getName());
+        thumbsLoaded &= l.thumbsLoaded;
     }
 
     private Dimension scaledDimension(Image thumb) {
Index: src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java
===================================================================
--- src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java	(revision 7765)
+++ src/org/openstreetmap/josm/gui/layer/geoimage/ThumbsLoader.java	(working copy)
@@ -40,11 +40,14 @@
         for (int i = 0; i < data.size(); i++) {
             if (stop) return;
 
-            data.get(i).thumbnail = loadThumb(data.get(i));
+            // Do not load thumbnails that were loaded before.
+            if (data.get(i).thumbnail == null) {
+                data.get(i).thumbnail = loadThumb(data.get(i));
 
-            if (Main.isDisplayingMapView()) {
-                layer.updateOffscreenBuffer = true;
-                Main.map.mapView.repaint();
+                if (Main.isDisplayingMapView()) {
+                    layer.updateOffscreenBuffer = true;
+                    Main.map.mapView.repaint();
+                }
             }
         }
         layer.updateOffscreenBuffer = true;
