Index: trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 4078)
+++ trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 4079)
@@ -280,5 +280,5 @@
      * @param scale The scale to use.
      */
-    private void zoomTo(EastNorth newCenter, double newScale) {
+    public void zoomTo(EastNorth newCenter, double newScale) {
         Bounds b = getProjection().getWorldBoundsLatLon();
         CachedLatLon cl = new CachedLatLon(newCenter);
Index: trunk/src/org/openstreetmap/josm/gui/layer/WMSLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/WMSLayer.java	(revision 4078)
+++ trunk/src/org/openstreetmap/josm/gui/layer/WMSLayer.java	(revision 4079)
@@ -421,4 +421,5 @@
                 new BookmarkWmsAction(),
                 SeparatorLayerAction.INSTANCE,
+                new ZoomToNativeResolution(),
                 new StartStopAction(),
                 new ToggleAlphaAction(),
@@ -785,4 +786,17 @@
     }
 
+    private class ZoomToNativeResolution extends AbstractAction {
+
+        public ZoomToNativeResolution() {
+            super(tr("Zoom to native resolution"));
+        }
+
+        @Override
+        public void actionPerformed(ActionEvent e) {
+            Main.map.mapView.zoomTo(Main.map.mapView.getCenter(), 1 / info.getPixelPerDegree());
+        }
+
+    }
+
     private void cancelGrabberThreads(boolean wait) {
         requestQueueLock.lock();
