Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 11952)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 11953)
@@ -722,4 +722,8 @@
     @Override
     public void zoomChanged() {
+        zoomChanged(true);
+    }
+
+    private void zoomChanged(boolean invalidate) {
         if (Main.isDebugEnabled()) {
             Main.debug("zoomChanged(): " + currentZoomLevel);
@@ -728,5 +732,7 @@
             ((TMSCachedTileLoader) tileLoader).cancelOutstandingTasks();
         }
-        invalidate();
+        if (invalidate) {
+            invalidate();
+        }
     }
 
@@ -783,9 +789,13 @@
      */
     public boolean setZoomLevel(int zoom) {
+        return setZoomLevel(zoom, true);
+    }
+
+    private boolean setZoomLevel(int zoom, boolean invalidate) {
         if (zoom == currentZoomLevel) return true;
         if (zoom > this.getMaxZoomLvl()) return false;
         if (zoom < this.getMinZoomLvl()) return false;
         currentZoomLevel = zoom;
-        zoomChanged();
+        zoomChanged(invalidate);
         return true;
     }
@@ -1428,5 +1438,5 @@
             }
 
-            setZoomLevel(zoom);
+            setZoomLevel(zoom, false);
 
             // If all tiles at displayZoomLevel is loaded, load all tiles at next zoom level
@@ -1446,5 +1456,5 @@
             ts = dts.getTileSet(zoom);
         } else if (getDisplaySettings().isAutoZoom()) {
-            setZoomLevel(zoom);
+            setZoomLevel(zoom, false);
         }
 
