Index: /trunk/src/org/openstreetmap/josm/gui/MapScaler.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapScaler.java	(revision 587)
+++ /trunk/src/org/openstreetmap/josm/gui/MapScaler.java	(revision 588)
@@ -9,4 +9,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.HelpAction.Helpful;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.tools.ColorHelper;
@@ -25,11 +26,16 @@
 
 	@Override public void paint(Graphics g) {
-		double circum = mv.getScale()*100*proj.scaleFactor()*40041455; // circumference of the earth in meter
-		String text = circum > 1000 ? (Math.round(circum/100)/10.0)+"km" : Math.round(circum)+"m";
+		LatLon ll1 = mv.getLatLon(0,0);
+		LatLon ll2 = mv.getLatLon(100,0);
+		int dist = ll1.distance(ll2);
+		String text = dist > 1000 ? (Math.round(dist/100)/10.0)+"km" : dist+"m";
+		Rectangle2D bound = g.getFontMetrics().getStringBounds(text, g);
 		g.setColor(ColorHelper.html2color(Main.pref.get("color.scale", "#ffffff")));
 		g.drawLine(0, 5, 99, 5);
 		g.drawLine(0, 0, 0, 10);
 		g.drawLine(99, 0, 99, 10);
-		Rectangle2D bound = g.getFontMetrics().getStringBounds(text, g);
+		g.drawLine(49, 0, 49, 10);
+		g.drawLine(24, 3, 24, 7);
+		g.drawLine(74, 3, 74, 7);
 		g.drawString(text, (int)(50-bound.getWidth()/2), 23);
     }
