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 29576)
+++ /applications/editors/josm/plugins/measurement/src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 29577)
@@ -143,9 +143,10 @@
                 Way w = (Way)p;
                 Node lastN = null;
+                double wayArea = 0.0;
                 for (Node n: w.getNodes()) {
                     if (lastN != null && lastN.getCoor() != null && n.getCoor() != null) {
                         length += lastN.getCoor().greatCircleDistance(n.getCoor());
                         //http://local.wasp.uwa.edu.au/~pbourke/geometry/polyarea/
-                        area += (MeasurementLayer.calcX(n.getCoor()) * MeasurementLayer.calcY(lastN.getCoor()))
+                        wayArea += (MeasurementLayer.calcX(n.getCoor()) * MeasurementLayer.calcY(lastN.getCoor()))
                         - (MeasurementLayer.calcY(n.getCoor()) * MeasurementLayer.calcX(lastN.getCoor()));
                         segAngle = MeasurementLayer.angleBetween(lastN.getCoor(), n.getCoor());
@@ -154,7 +155,8 @@
                 }
                 if (lastN != null && lastN == w.getNodes().iterator().next())
-                    area = Math.abs(area / 2);
+                    wayArea = Math.abs(wayArea / 2);
                 else
-                    area = 0;
+                    wayArea = 0;
+                area += wayArea;
             }
         }
