Index: trunk/src/org/openstreetmap/josm/data/projection/AbstractProjection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/AbstractProjection.java	(revision 12819)
+++ trunk/src/org/openstreetmap/josm/data/projection/AbstractProjection.java	(revision 12820)
@@ -148,5 +148,5 @@
         if (proj.lonIsLinearToEast()) {
             //FIXME: Respect datum?
-            // wrap the wrold around
+            // wrap the world around
             Bounds bounds = getWorldBoundsLatLon();
             double minEast = latlon2eastNorth(bounds.getMin()).east();
@@ -225,9 +225,9 @@
 
     private void visitOutline(Bounds b, int nPoints, Consumer<EastNorth> visitor) {
-        double minlon = b.getMinLon();
+        double maxlon = b.getMaxLon();
         if (b.crosses180thMeridian()) {
-            minlon -= 360.0;
-        }
-        double spanLon = b.getMaxLon() - minlon;
+            maxlon += 360.0;
+        }
+        double spanLon = maxlon - b.getMinLon();
         double spanLat = b.getMaxLat() - b.getMinLat();
 
@@ -235,17 +235,17 @@
         for (int step = 0; step < nPoints; step++) {
             visitor.accept(latlon2eastNorth(
-                    new LatLon(b.getMinLat(), minlon + spanLon * step / nPoints)));
-        }
-        for (int step = 0; step < nPoints; step++) {
-            visitor.accept(latlon2eastNorth(
-                    new LatLon(b.getMinLat() + spanLat * step / nPoints, b.getMaxLon())));
-        }
-        for (int step = 0; step < nPoints; step++) {
-            visitor.accept(latlon2eastNorth(
-                    new LatLon(b.getMaxLat(), b.getMaxLon() - spanLon * step / nPoints)));
-        }
-        for (int step = 0; step < nPoints; step++) {
-            visitor.accept(latlon2eastNorth(
-                    new LatLon(b.getMaxLat() - spanLat * step / nPoints, minlon)));
+                    new LatLon(b.getMinLat(), b.getMinLon() + spanLon * step / nPoints)));
+        }
+        for (int step = 0; step < nPoints; step++) {
+            visitor.accept(latlon2eastNorth(
+                    new LatLon(b.getMinLat() + spanLat * step / nPoints, maxlon)));
+        }
+        for (int step = 0; step < nPoints; step++) {
+            visitor.accept(latlon2eastNorth(
+                    new LatLon(b.getMaxLat(), maxlon - spanLon * step / nPoints)));
+        }
+        for (int step = 0; step < nPoints; step++) {
+            visitor.accept(latlon2eastNorth(
+                    new LatLon(b.getMaxLat() - spanLat * step / nPoints, b.getMinLon())));
         }
     }
