Index: trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 18671)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 18675)
@@ -131,5 +131,10 @@
         for (int i = 0; i < w.getNodesCount() - 1; i++) {
             final WaySegment es1 = new WaySegment(w, i);
-            CrossingWays.getSegments(this.cellSegmentsWater, es1.getFirstNode(), es1.getSecondNode()).forEach(list -> list.add(es1));
+            final Node first = es1.getFirstNode();
+            final Node second = es1.getSecondNode();
+
+            if (first.isLatLonKnown() && second.isLatLonKnown()) {
+                CrossingWays.getSegments(this.cellSegmentsWater, first, second).forEach(list -> list.add(es1));
+            }
         }
     }
Index: trunk/src/org/openstreetmap/josm/tools/Geometry.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 18671)
+++ trunk/src/org/openstreetmap/josm/tools/Geometry.java	(revision 18675)
@@ -939,5 +939,5 @@
      */
     public static EastNorth getCentroid(List<? extends INode> nodes) {
-        return getCentroidEN(nodes.stream().map(INode::getEastNorth).collect(Collectors.toList()));
+        return getCentroidEN(nodes.stream().filter(INode::isLatLonKnown).map(INode::getEastNorth).collect(Collectors.toList()));
     }
 
@@ -955,4 +955,6 @@
         } else if (size == 2) {
             return nodes.get(0).getCenter(nodes.get(1));
+        } else if (size == 0) {
+            return null;
         }
 
