Index: trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java	(revision 4328)
+++ trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java	(revision 4329)
@@ -1166,7 +1166,9 @@
             }
             // Find highest zoom level with at least one visible tile
-            while (displayZoomLevel > dts.minZoom &&
-                    !dts.getTileSetInfo(displayZoomLevel).hasVisibleTiles) {
-                displayZoomLevel--;
+            for (int tmpZoom = zoom; tmpZoom > dts.minZoom; tmpZoom--) {
+                if (dts.getTileSetInfo(tmpZoom).hasVisibleTiles) {
+                    displayZoomLevel = tmpZoom;
+                    break;
+                }
             }
             // Do binary search between currentZoomLevel and displayZoomLevel
