Index: trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 4445)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 4447)
@@ -9,4 +9,5 @@
 import java.util.Collection;
 import java.util.Collections;
+import java.util.LinkedList;
 import java.util.List;
 
@@ -225,7 +226,16 @@
             }
 
+            List<Node> openNodes = new LinkedList<Node>();
             for (List<Node> w : nonClosedWays) {
-                errors.add(new TestError(this, Severity.WARNING, tr("Multipolygon is not closed"), NON_CLOSED_WAY, 
-                        w, Arrays.asList(w.get(0), w.get(w.size() - 1))));
+                openNodes.add(w.get(0));
+                openNodes.add(w.get(w.size() - 1));
+            }
+            if (!openNodes.isEmpty()) {
+                List<OsmPrimitive> primitives = new LinkedList<OsmPrimitive>();
+                primitives.add(r);
+                primitives.addAll(openNodes);
+                Arrays.asList(openNodes, r);
+                errors.add(new TestError(this, Severity.WARNING, tr("Multipolygon is not closed"), NON_CLOSED_WAY,
+                        primitives, openNodes));
             }
 
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/UnclosedWays.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/UnclosedWays.java	(revision 4445)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/UnclosedWays.java	(revision 4447)
@@ -6,8 +6,6 @@
 
 import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Arrays;
 
-import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmUtils;
@@ -114,18 +112,11 @@
                     return;
             }
-            Node f = w.firstNode();
-            Node l = w.lastNode();
-
-            List<OsmPrimitive> primitives = new ArrayList<OsmPrimitive>();
-            List<OsmPrimitive> highlight = new ArrayList<OsmPrimitive>();
-            primitives.add(w);
-
-            // The important parts of an unclosed way are the first and
-            // the last node which should be connected, therefore we highlight them
-            highlight.add(f);
-            highlight.add(l);
 
             errors.add(new TestError(this, Severity.WARNING, tr("Unclosed way"),
-                            type, etype, mode, primitives, highlight));
+                    type, etype, mode,
+                    Arrays.asList(w),
+                    // The important parts of an unclosed way are the first and
+                    // the last node which should be connected, therefore we highlight them
+                    Arrays.asList(w.firstNode(), w.lastNode())));
         }
     }
