Index: trunk/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java	(revision 5355)
+++ trunk/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java	(revision 5356)
@@ -80,7 +80,9 @@
             if (!n.isIncomplete() && !n.isDeleted()) {
                 LatLon c = n.getCoor();
-                BBox box = new BBox(new LatLon(c.lat() - 0.0001, c.lon() - 0.0001), new LatLon(c.lat() + 0.0001, c.lon() + 0.0001));
-                if (!dataSet.searchNodes(box).contains(n)) {
-                    printError("SEARCH NODES", "%s not found using Dataset.searchNodes()", n);
+                if (c != null) {
+                    BBox box = new BBox(new LatLon(c.lat() - 0.0001, c.lon() - 0.0001), new LatLon(c.lat() + 0.0001, c.lon() + 0.0001));
+                    if (!dataSet.searchNodes(box).contains(n)) {
+                        printError("SEARCH NODES", "%s not found using Dataset.searchNodes()", n);
+                    }
                 }
             }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 5355)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java	(revision 5356)
@@ -44,8 +44,8 @@
         double precision = Main.pref.getDouble("validator.duplicatenodes.precision", 0.);
 
-        private LatLon RoundCoord(Node o) {
+        private LatLon roundCoord(LatLon coor) {
             return new LatLon(
-                    Math.round(o.getCoor().lat() / precision) * precision,
-                    Math.round(o.getCoor().lon() / precision) * precision
+                    Math.round(coor.lat() / precision) * precision,
+                    Math.round(coor.lon() / precision) * precision
                     );
         }
@@ -54,11 +54,17 @@
         private LatLon getLatLon(Object o) {
             if (o instanceof Node) {
+                LatLon coor = ((Node) o).getCoor();
+                if (coor == null)
+                    return null;
                 if (precision==0)
-                    return ((Node) o).getCoor().getRoundedToOsmPrecision();
-                return RoundCoord((Node) o);
+                    return coor.getRoundedToOsmPrecision();
+                return roundCoord(coor);
             } else if (o instanceof List<?>) {
+                LatLon coor = ((List<Node>) o).get(0).getCoor();
+                if (coor == null)
+                    return null;
                 if (precision==0)
-                    return ((List<Node>) o).get(0).getCoor().getRoundedToOsmPrecision();
-                return RoundCoord(((List<Node>) o).get(0));
+                    return coor.getRoundedToOsmPrecision();
+                return roundCoord(coor);
             } else
                 throw new AssertionError();
@@ -67,10 +73,13 @@
         @Override
         public boolean equals(Object k, Object t) {
-            return getLatLon(k).equals(getLatLon(t));
+            LatLon coorK = getLatLon(k);
+            LatLon coorT = getLatLon(t);
+            return coorK == coorT || (coorK != null && coorT != null && coorK.equals(coorT));
         }
 
         @Override
         public int getHashCode(Object k) {
-            return getLatLon(k).hashCode();
+            LatLon coorK = getLatLon(k);
+            return coorK == null ? 0 : coorK.hashCode();
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java	(revision 5355)
+++ trunk/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java	(revision 5356)
@@ -262,6 +262,6 @@
             // display the coordinates
             //
-            lblLat.setText(coord != null ? coord.latToString(CoordinateFormat.DECIMAL_DEGREES) : tr("Deleted"));
-            lblLon.setText(coord != null ? coord.lonToString(CoordinateFormat.DECIMAL_DEGREES) : tr("Deleted"));
+            lblLat.setText(coord != null ? coord.latToString(CoordinateFormat.DECIMAL_DEGREES) : tr("(none)"));
+            lblLon.setText(coord != null ? coord.lonToString(CoordinateFormat.DECIMAL_DEGREES) : tr("(none)"));
 
             // update background color to reflect differences in the coordinates
@@ -342,5 +342,5 @@
             } else {
                 lblDistance.setBackground(coord != oppositeCoord ? BGCOLOR_DIFFERENCE : Color.WHITE);
-                lblDistance.setText(tr("Deleted"));
+                lblDistance.setText(tr("(none)"));
             }
         }
