Index: applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
===================================================================
--- applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 35976)
+++ applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 35978)
@@ -204,9 +204,9 @@
             } else {
                 for (Node n : nodes) {
-                    if (n.getCoor() != null) {
+                    if (n.isLatLonKnown()) {
                         if (lastNode == null) {
                             lastNode = n;
                         } else {
-                            length += lastNode.getCoor().greatCircleDistance(n.getCoor());
+                            length += lastNode.greatCircleDistance(n);
                             segAngle = MeasurementLayer.angleBetween(lastNode, n);
                             lastNode = n;
@@ -223,6 +223,6 @@
                 boolean isCircle = true;
                 for (Node n: w.getNodes()) {
-                    if (lastN != null && lastN.getCoor() != null && n.getCoor() != null) {
-                        final double segLength = lastN.getCoor().greatCircleDistance(n.getCoor());
+                    if (lastN != null && lastN.isLatLonKnown() && n.isLatLonKnown()) {
+                        final double segLength = lastN.greatCircleDistance(n);
                         if (firstSegLength == null) {
                             firstSegLength = segLength;
@@ -233,6 +233,6 @@
                         length += segLength;
                         //http://local.wasp.uwa.edu.au/~pbourke/geometry/polyarea/
-                        wayArea += (MeasurementLayer.calcX(n.getCoor()) * MeasurementLayer.calcY(lastN.getCoor()))
-                                - (MeasurementLayer.calcY(n.getCoor()) * MeasurementLayer.calcX(lastN.getCoor()));
+                        wayArea += (MeasurementLayer.calcX(n) * MeasurementLayer.calcY(lastN))
+                                - (MeasurementLayer.calcY(n) * MeasurementLayer.calcX(lastN));
                         segAngle = MeasurementLayer.angleBetween(lastN, n);
                     }
Index: applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java
===================================================================
--- applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 35976)
+++ applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementLayer.java	(revision 35978)
@@ -157,14 +157,14 @@
      * https://stackoverflow.com/questions/4681737/how-to-calculate-the-area-of-a-polygon-on-the-earths-surface-using-python
      */
-    public static double calcX(LatLon p1){
+    public static double calcX(ILatLon p1){
         return p1.lat() * Math.PI * 6367000 / 180;
     }
 
-    public static double calcY(LatLon p1){
+    public static double calcY(ILatLon p1){
         return p1.lon() * ( Math.PI * 6367000 / 180) * Math.cos(p1.lat() * Math.PI / 180);
     }
 
     public static double calcDistance(WayPoint p1, WayPoint p2){
-        return p1.getCoor().greatCircleDistance(p2.getCoor());
+        return p1.greatCircleDistance(p2);
     }
 
