Index: src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java
===================================================================
--- src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(revision 29564)
+++ src/org/openstreetmap/josm/plugins/measurement/MeasurementDialog.java	(working copy)
@@ -142,20 +142,22 @@
             } else if (p instanceof Way) {
                 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());
                     }
                     lastN = n;
                 }
                 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;
             }
         }
         
