Index: /trunk/src/org/openstreetmap/josm/command/MoveCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 1727)
+++ /trunk/src/org/openstreetmap/josm/command/MoveCommand.java	(revision 1728)
@@ -69,5 +69,5 @@
         for (Node n : this.objects) {
             OldState os = new OldState();
-            os.latlon = n.getCoor();
+            os.latlon = new LatLon(n.getCoor());
             os.modified = n.modified;
             oldState.add(os);
Index: /trunk/src/org/openstreetmap/josm/command/RotateCommand.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/command/RotateCommand.java	(revision 1727)
+++ /trunk/src/org/openstreetmap/josm/command/RotateCommand.java	(revision 1728)
@@ -75,5 +75,5 @@
         for (Node n : this.objects) {
             OldState os = new OldState();
-            os.latlon = n.getCoor();
+            os.latlon = new LatLon(n.getCoor());
             os.eastNorth = n.getEastNorth();
             os.modified = n.modified;
Index: /trunk/src/org/openstreetmap/josm/data/coor/CachedLatLon.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/coor/CachedLatLon.java	(revision 1727)
+++ /trunk/src/org/openstreetmap/josm/data/coor/CachedLatLon.java	(revision 1728)
@@ -25,7 +25,7 @@
     public final void setEastNorth(EastNorth eastNorth) {
         proj = Main.proj;
-        eastNorth = eastNorth;
+        this.eastNorth = eastNorth;
         LatLon l = proj.eastNorth2latlon(eastNorth);
-        setLocation(l.lat(), l.lon());
+        setLocation(l.lon(), l.lat());
     }
 
Index: /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 1727)
+++ /trunk/src/org/openstreetmap/josm/data/coor/LatLon.java	(revision 1728)
@@ -47,4 +47,8 @@
     public LatLon(double lat, double lon) {
         super(lon, lat);
+    }
+
+    public LatLon(LatLon coor) {
+        super(coor.lon(), coor.lat());
     }
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1727)
+++ /trunk/src/org/openstreetmap/josm/data/osm/visitor/MapPaintVisitor.java	(revision 1728)
@@ -85,10 +85,5 @@
             return (circum < 1500);
 
-        /* formula to calculate a map scale: natural size / map size = scale
-           example: 876000mm (876m as displayed) / 22mm (roughly estimated screen size of legend bar) = 39818
-
-           so the exact "correcting value" below depends only on the screen size and resolution
-           XXX - do we need a Preference setting for this (if things vary widely)? */
-        return !(circum >= e.maxScale / 22 || circum < e.minScale / 22);
+        return !(circum >= e.maxScale || circum < e.minScale);
     }
 
@@ -1274,5 +1269,5 @@
         useRealWidth = Main.pref.getBoolean("mappaint.useRealWidth",false);
         zoomLevelDisplay = Main.pref.getBoolean("mappaint.zoomLevelDisplay",false);
-        circum = Main.map.mapView.getMapScale();
+        circum = Main.map.mapView.getDist100Pixel();
         styles = MapPaintStyles.getStyles().getStyleSet();
         drawMultipolygon = Main.pref.getBoolean("mappaint.multipolygon",true);
Index: /trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 1727)
+++ /trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 1728)
@@ -70,9 +70,4 @@
         id.update(x.getBytes());
         return new Long(id.getValue()).intValue();
-    }
-
-    public double getMapScale() {
-        /* TODO: we assume a pixel is 0.025mm */
-        return getDist100Pixel()/(0.00025*100);
     }
 
