Index: trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 10582)
+++ trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java	(revision 10583)
@@ -176,5 +176,5 @@
     @Override
     public boolean isNewOrUndeleted() {
-        return (id <= 0) || ((flags & (FLAG_VISIBLE + FLAG_DELETED)) == 0);
+        return isNew() || ((flags & (FLAG_VISIBLE + FLAG_DELETED)) == 0);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 10582)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 10583)
@@ -17,5 +17,4 @@
 import java.util.Locale;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Set;
 
@@ -1385,8 +1384,12 @@
     @Override
     public boolean equals(Object obj) {
-        if (this == obj) return true;
-        if (obj == null || getClass() != obj.getClass()) return false;
-        OsmPrimitive that = (OsmPrimitive) obj;
-        return Objects.equals(id, that.id);
+        if (this == obj) {
+            return true;
+        } else if (obj == null || getClass() != obj.getClass()) {
+            return false;
+        } else {
+            OsmPrimitive that = (OsmPrimitive) obj;
+            return id == that.id;
+        }
     }
 
@@ -1398,5 +1401,5 @@
     @Override
     public int hashCode() {
-        return Objects.hash(id);
+        return Long.hashCode(id);
     }
 
