Index: trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 9944)
+++ trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 9946)
@@ -203,12 +203,13 @@
         if (nativeScaleLayer != null) {
             ScaleList scaleList = nativeScaleLayer.getNativeScales();
-            if (PROP_ZOOM_INTERMEDIATE_STEPS.get()) {
-                scaleList = scaleList.withIntermediateSteps(PROP_ZOOM_RATIO.get());
-            }
-            Scale s = scaleList.scaleZoomTimes(getScale(), PROP_ZOOM_RATIO.get(), times);
-            return s != null ? s.getScale() : 0;
-        } else {
-            return getScale() * Math.pow(PROP_ZOOM_RATIO.get(), times);
-        }
+            if (scaleList != null) {
+                if ( PROP_ZOOM_INTERMEDIATE_STEPS.get()) {
+                    scaleList = scaleList.withIntermediateSteps(PROP_ZOOM_RATIO.get());
+                }
+                Scale s = scaleList.scaleZoomTimes(getScale(), PROP_ZOOM_RATIO.get(), times);
+                return s != null ? s.getScale() : 0;
+            }
+        }
+        return getScale() * Math.pow(PROP_ZOOM_RATIO.get(), times);
     }
 
@@ -244,9 +245,10 @@
         if (nativeScaleLayer != null) {
             ScaleList scaleList = nativeScaleLayer.getNativeScales();
-            Scale snapscale = scaleList.getSnapScale(scale, PROP_ZOOM_RATIO.get(), floor);
-            return snapscale != null ? snapscale.getScale() : scale;
-        } else {
-            return scale;
-        }
+            if (scaleList != null) {
+                Scale snapscale = scaleList.getSnapScale(scale, PROP_ZOOM_RATIO.get(), floor);
+                return snapscale != null ? snapscale.getScale() : scale;
+            }
+        }
+        return scale;
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/layer/WMTSLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/WMTSLayer.java	(revision 9944)
+++ trunk/src/org/openstreetmap/josm/gui/layer/WMTSLayer.java	(revision 9946)
@@ -62,5 +62,10 @@
         if (!Main.isDisplayingMapView())
             return 0;
-        Scale snap = getNativeScales().getSnapScale(Main.map.mapView.getScale(), false);
+        ScaleList scaleList = getNativeScales();
+        Scale snap = null;
+        if (scaleList == null) {
+            return getMaxZoomLvl();
+        }
+        snap = scaleList.getSnapScale(Main.map.mapView.getScale(), false);
         return Math.max(
                 getMinZoomLvl(),
