Index: trunk/test/functional/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java	(revision 2072)
+++ trunk/test/functional/org/openstreetmap/josm/gui/conflict/pair/properties/PropertiesMergerTest.java	(revision 2077)
@@ -26,5 +26,5 @@
         Node my = new Node(1);
         my.setCoor(new LatLon(1,1));
-        my.deleted = true;
+        my.setDeleted(true);
 
         Node their = new Node(2);
Index: trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 2072)
+++ trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 2077)
@@ -28,4 +28,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
@@ -247,5 +248,5 @@
         while(it.hasNext()) {
             Node n1 = it.next();
-            Node n2 = (Node)ds.getPrimitiveById(n1.id);
+            Node n2 = (Node)ds.getPrimitiveById(n1.getId(), OsmPrimitiveType.NODE);
             assertNotNull(n2);
             assertEquals(n2.get("name"),n2.get("name"));
@@ -266,5 +267,5 @@
         while(it.hasNext()) {
             Way w1 = it.next();
-            Way w2 = (Way)ds.getPrimitiveById(w1.id);
+            Way w2 = (Way)ds.getPrimitiveById(w1.getId(), OsmPrimitiveType.WAY);
             assertNotNull(w2);
             assertEquals(w2.getNodesCount(), w1.getNodesCount());
@@ -286,5 +287,5 @@
         while(it.hasNext()) {
             Relation r1 = it.next();
-            Relation r2 = (Relation)ds.getPrimitiveById(r1.id);
+            Relation r2 = (Relation)ds.getPrimitiveById(r1.getId(), OsmPrimitiveType.RELATION);
             assertNotNull(r2);
             assertEquals(r2.getMembersCount(), r1.getMembersCount());
@@ -306,5 +307,5 @@
         while(it.hasNext()) {
             Node n1 = it.next();
-            Node n2 = (Node)ds.getPrimitiveById(n1.id);
+            Node n2 = (Node)ds.getPrimitiveById(n1.getId(), OsmPrimitiveType.NODE);
             assertNotNull(n2);
             assertEquals(n2.get("name"),n2.get("name"));
@@ -327,5 +328,5 @@
         while(it.hasNext()) {
             Node n1 = it.next();
-            Node n2 = (Node)ds.getPrimitiveById(n1.id);
+            Node n2 = (Node)ds.getPrimitiveById(n1.getId(), OsmPrimitiveType.NODE);
             assertNotNull(n2);
             assertEquals(n2.get("name"),n2.get("name"));
Index: trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java	(revision 2072)
+++ trunk/test/functional/org/openstreetmap/josm/io/OsmServerBackreferenceReaderTest.java	(revision 2077)
@@ -27,4 +27,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
@@ -253,5 +254,5 @@
         assertEquals(0, referers.relations.size());
         for (Way way: referers.ways) {
-            assertEquals(w.id, way.id);
+            assertEquals(w.getId(), way.getId());
             assertEquals(false, way.incomplete);
         }
@@ -272,5 +273,5 @@
         assertEquals(0, referers.relations.size());
         for (Way way: referers.ways) {
-            assertEquals(w.id, way.id);
+            assertEquals(w.getId(), way.getId());
             assertEquals(false, way.incomplete);
             assertEquals(10, w.getNodesCount());
@@ -319,12 +320,12 @@
         Set<Long> expectedNodeIds = new HashSet<Long>();
         for (Way way: referers.ways) {
-            Way orig = (Way)ds.getPrimitiveById(way.id);
+            Way orig = (Way)ds.getPrimitiveById(way.getId(), OsmPrimitiveType.WAY);
             for(Node n: orig.getNodes()) {
-                expectedNodeIds.add(n.id);
+                expectedNodeIds.add(n.getId());
             }
         }
         assertEquals(expectedNodeIds.size(), referers.nodes.size());
         for (Node n : referers.nodes) {
-            assertEquals(true, expectedNodeIds.contains(n.id));
+            assertEquals(true, expectedNodeIds.contains(n.getId()));
         }
 
@@ -352,20 +353,20 @@
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
         r = lookupRelation(referers, 7);
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
         r = lookupRelation(referers, 8);
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
         r = lookupRelation(referers, 9);
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
 
         for (Relation r1: referers.relations) {
-            if (! referringRelationsIds.contains(r1.id)) {
+            if (! referringRelationsIds.contains(r1.getId())) {
                 assertEquals(true, r1.incomplete);
             }
@@ -378,20 +379,20 @@
         for (RelationMember m : lookupRelation(ds, 6).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (RelationMember m : lookupRelation(ds, 7).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (RelationMember m : lookupRelation(ds, 8).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (RelationMember m : lookupRelation(ds, 9).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
@@ -399,5 +400,5 @@
         assertEquals(expectedWayIds.size(), referers.ways.size());
         for (Way w1 : referers.ways) {
-            assertEquals(true, expectedWayIds.contains(w1.id));
+            assertEquals(true, expectedWayIds.contains(w1.getId()));
             assertEquals(true, w1.incomplete);
         }
@@ -412,5 +413,5 @@
         if (way == null)return ret;
         for (Node n: way.getNodes()) {
-            ret.add(n.id);
+            ret.add(n.getId());
         }
         return ret;
@@ -422,5 +423,5 @@
         for (RelationMember m: r.getMembers()) {
             if (m.isNode()) {
-                ret.add(m.getMember().id);
+                ret.add(m.getMember().getId());
             } else if (m.isWay()) {
                 ret.addAll(getNodeIdsInWay(m.getWay()));
@@ -448,17 +449,17 @@
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
         r = lookupRelation(referers, 7);
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
         r = lookupRelation(referers, 8);
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
         r = lookupRelation(referers, 9);
         assertNotNull(r);
         assertEquals(false, r.incomplete);
-        referringRelationsIds.add(r.id);
+        referringRelationsIds.add(r.getId());
 
         // all relations are fully loaded
@@ -474,24 +475,24 @@
         for (RelationMember m : lookupRelation(ds, 6).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (RelationMember m : lookupRelation(ds, 7).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (RelationMember m : lookupRelation(ds, 8).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (RelationMember m : lookupRelation(ds, 9).getMembers()) {
             if (m.isWay()) {
-                expectedWayIds.add(m.getMember().id);
+                expectedWayIds.add(m.getMember().getId());
             }
         }
         for (long id : expectedWayIds) {
-            Way w = (Way)referers.getPrimitiveById(id);
+            Way w = (Way)referers.getPrimitiveById(id, OsmPrimitiveType.WAY);
             assertNotNull(w);
             assertEquals(false, w.incomplete);
@@ -506,5 +507,5 @@
         assertEquals(expectedNodeIds.size(), referers.nodes.size());
         for(Node n : referers.nodes) {
-            assertEquals(true, expectedNodeIds.contains(n.id));
+            assertEquals(true, expectedNodeIds.contains(n.getId()));
         }
     }
Index: trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java	(revision 2072)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeSourceBuildingVisitorTest.java	(revision 2077)
@@ -14,4 +14,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
@@ -50,9 +51,9 @@
         assertEquals(2, hull.nodes.size());
 
-        OsmPrimitive p = hull.getPrimitiveById(1);
+        OsmPrimitive p = hull.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertEquals(p.getClass(), Node.class);
 
-        p = hull.getPrimitiveById(3);
+        p = hull.getPrimitiveById(3,OsmPrimitiveType.NODE);
         assertNull(p);
 
@@ -71,4 +72,5 @@
         Node n2 = new Node(2);
         Way w1 = new Way(3);
+        w1.incomplete = false;
         w1.addNode(n1);
         w1.addNode(n2);
@@ -84,13 +86,13 @@
         assertEquals(2, hull.nodes.size());
 
-        OsmPrimitive p = hull.getPrimitiveById(1);
+        OsmPrimitive p = hull.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertEquals(p.getClass(), Node.class);
 
-        p = hull.getPrimitiveById(2);
+        p = hull.getPrimitiveById(2,OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertEquals(p.getClass(), Node.class);
 
-        p = hull.getPrimitiveById(3);
+        p = hull.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertNotNull(p);
         assertEquals(p.getClass(), Way.class);
@@ -103,4 +105,5 @@
         Node n2 = new Node(2);
         Way w1 = new Way(3);
+        w1.incomplete = false;
         w1.addNode(n1);
         w1.addNode(n2);
@@ -116,13 +119,13 @@
         assertEquals(2, hull.nodes.size());
 
-        OsmPrimitive p = hull.getPrimitiveById(1);
+        OsmPrimitive p = hull.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertEquals(p.getClass(), Node.class);
 
-        p = hull.getPrimitiveById(2);
+        p = hull.getPrimitiveById(2, OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertEquals(p.getClass(), Node.class);
 
-        p = hull.getPrimitiveById(3);
+        p = hull.getPrimitiveById(3,OsmPrimitiveType.WAY);
         assertNotNull(p);
         assertEquals(p.getClass(), Way.class);
@@ -142,5 +145,5 @@
         assertEquals(1, hull.ways.size());
 
-        OsmPrimitive p = hull.getPrimitiveById(3);
+        OsmPrimitive p = hull.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertNotNull(p);
         assertEquals(p.getClass(), Way.class);
@@ -154,5 +157,7 @@
         Node n20 = new Node(20);
         r1.addMember(new RelationMember("node-20",n20));
+        r1.incomplete = false;
         Way w30 = new Way(30);
+        w30.incomplete = false;
         Node n21;
         w30.addNode(n21 = new Node(21));
@@ -177,30 +182,30 @@
         assertEquals(2, hull.relations.size());
 
-        OsmPrimitive p = hull.getPrimitiveById(1);
+        OsmPrimitive p = hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
         assertNotNull(p);
         assertEquals(p.getClass(), Relation.class);
 
-        Way w = (Way)hull.getPrimitiveById(30);
+        Way w = (Way)hull.getPrimitiveById(30,OsmPrimitiveType.WAY);
         assertNotNull(w);
         assertEquals(2, w.getNodesCount());
-        Node n = (Node)hull.getPrimitiveById(21);
+        Node n = (Node)hull.getPrimitiveById(21, OsmPrimitiveType.NODE);
         assertNotNull(n);
         assertTrue(w.containsNode(n));
 
-        n = (Node)hull.getPrimitiveById(22);
+        n = (Node)hull.getPrimitiveById(22,OsmPrimitiveType.NODE);
         assertNotNull(n);
         assertTrue(w.containsNode(n));
 
-        Relation r = (Relation)hull.getPrimitiveById(40);
-        assertNotNull(r);
-
-        r = (Relation)hull.getPrimitiveById(1);
+        Relation r = (Relation)hull.getPrimitiveById(40,OsmPrimitiveType.RELATION);
+        assertNotNull(r);
+
+        r = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
         assertNotNull(r);
         assertEquals(3, r.getMembersCount());
-        RelationMember m = new RelationMember("node-20", hull.getPrimitiveById(20));
-        assertTrue(r.getMembers().contains(m));
-        m = new RelationMember("way-30", hull.getPrimitiveById(30));
-        assertTrue(r.getMembers().contains(m));
-        m = new RelationMember("relation-40", hull.getPrimitiveById(40));
+        RelationMember m = new RelationMember("node-20", hull.getPrimitiveById(20,OsmPrimitiveType.NODE));
+        assertTrue(r.getMembers().contains(m));
+        m = new RelationMember("way-30", hull.getPrimitiveById(30, OsmPrimitiveType.WAY));
+        assertTrue(r.getMembers().contains(m));
+        m = new RelationMember("relation-40", hull.getPrimitiveById(40, OsmPrimitiveType.RELATION));
         assertTrue(r.getMembers().contains(m));
     }
@@ -213,4 +218,5 @@
         r1.addMember(new RelationMember("node-20",n20));
         Way w30 = new Way(30);
+        w30.incomplete = false;
         Node n21;
         w30.addNode(n21 = new Node(21));
@@ -235,31 +241,31 @@
         assertEquals(2, hull.relations.size());
 
-        OsmPrimitive p = hull.getPrimitiveById(1);
+        OsmPrimitive p = hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
         assertNotNull(p);
         assertEquals(p.getClass(), Relation.class);
 
-        Way w = (Way)hull.getPrimitiveById(30);
+        Way w = (Way)hull.getPrimitiveById(30, OsmPrimitiveType.WAY);
         assertNotNull(w);
         assertTrue(w.incomplete);
 
 
-        Node n = (Node)hull.getPrimitiveById(21);
+        Node n = (Node)hull.getPrimitiveById(21,OsmPrimitiveType.NODE);
         assertNull(n);
 
-        n = (Node)hull.getPrimitiveById(22);
+        n = (Node)hull.getPrimitiveById(22, OsmPrimitiveType.NODE);
         assertNull(n);
 
-        Relation r = (Relation)hull.getPrimitiveById(40);
+        Relation r = (Relation)hull.getPrimitiveById(40, OsmPrimitiveType.RELATION);
         assertNotNull(r);
         assertTrue(r.incomplete);
 
-        r = (Relation)hull.getPrimitiveById(1);
+        r = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
         assertNotNull(r);
         assertEquals(3, r.getMembersCount());
-        RelationMember m = new RelationMember("node-20", hull.getPrimitiveById(20));
-        assertTrue(r.getMembers().contains(m));
-        m = new RelationMember("way-30", hull.getPrimitiveById(30));
-        assertTrue(r.getMembers().contains(m));
-        m = new RelationMember("relation-40", hull.getPrimitiveById(40));
+        RelationMember m = new RelationMember("node-20", hull.getPrimitiveById(20, OsmPrimitiveType.NODE));
+        assertTrue(r.getMembers().contains(m));
+        m = new RelationMember("way-30", hull.getPrimitiveById(30, OsmPrimitiveType.WAY));
+        assertTrue(r.getMembers().contains(m));
+        m = new RelationMember("relation-40", hull.getPrimitiveById(40, OsmPrimitiveType.RELATION));
         assertTrue(r.getMembers().contains(m));
     }
@@ -272,5 +278,6 @@
         Node n20 = new Node(new LatLon(20.0,20.0));
         n20.put("name", "n20");
-        r1.getMembers().add(new RelationMember("node-20",n20));
+        r1.addMember(new RelationMember("node-20",n20));
+
         Way w30 = new Way();
         w30.put("name", "w30");
@@ -285,4 +292,5 @@
         r40.put("name", "r40");
         r1.addMember(new RelationMember("relation-40", r40));
+
         source.nodes.add(n20);
         source.nodes.add(n21);
@@ -343,5 +351,5 @@
         assertEquals(1, hull.relations.size());
 
-        Relation r = (Relation)hull.getPrimitiveById(1);
+        Relation r = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
         assertNotNull(r);
         assertEquals(1, r.getMembersCount());
@@ -385,7 +393,7 @@
         assertEquals(2, hull.relations.size());
 
-        r1 = (Relation)hull.getPrimitiveById(1);
+        r1 = (Relation)hull.getPrimitiveById(1, OsmPrimitiveType.RELATION);
         assertNotNull(r1);
-        r2 = (Relation)hull.getPrimitiveById(2);
+        r2 = (Relation)hull.getPrimitiveById(2, OsmPrimitiveType.RELATION);
         assertNotNull(r2);
         assertEquals(1, r1.getMembersCount());
Index: trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeVisitorTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeVisitorTest.java	(revision 2072)
+++ trunk/test/unit/org/openstreetmap/josm/data/osm/visitor/MergeVisitorTest.java	(revision 2077)
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.RelationMember;
@@ -97,5 +98,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertTrue(visitor.getConflicts().isEmpty());
         assertEquals(1, n2.getId());
@@ -133,5 +134,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertTrue(visitor.getConflicts().isEmpty());
         assertEquals(1, n2.getId());
@@ -173,5 +174,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertEquals(1,visitor.getConflicts().size());
         assertEquals(n, n2);
@@ -209,5 +210,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertEquals(1,visitor.getConflicts().size());
         assertEquals(n, n2);
@@ -242,5 +243,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertEquals(1,visitor.getConflicts().size());
         assertEquals(true, n2.isVisible());
@@ -271,5 +272,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertEquals(0,visitor.getConflicts().size());
         assertEquals(true, n2.isVisible());
@@ -354,5 +355,5 @@
         visitor.merge();
 
-        Node n2 = (Node)my.getPrimitiveById(1);
+        Node n2 = (Node)my.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertEquals(0,visitor.getConflicts().size());
         assertEquals(2,my.nodes.size());
@@ -501,5 +502,5 @@
         visitor.merge();
 
-        Way merged = (Way)my.getPrimitiveById(3);
+        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertEquals(0,visitor.getConflicts().size());
         assertEquals("value1",merged.get("key1"));
@@ -571,5 +572,5 @@
         visitor.merge();
 
-        Way merged = (Way)my.getPrimitiveById(3);
+        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertEquals(0,visitor.getConflicts().size());
         assertEquals(3,merged.getId());
@@ -642,5 +643,5 @@
         visitor.merge();
 
-        Way merged = (Way)my.getPrimitiveById(3);
+        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertEquals(1,visitor.getConflicts().size());
         assertEquals(3,merged.getId());
@@ -690,5 +691,5 @@
         visitor.merge();
 
-        Way merged = (Way)my.getPrimitiveById(3);
+        Way merged = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertEquals(1,visitor.getConflicts().size());
         assertEquals(true, visitor.getConflicts().hasConflictForMy(myWay));
@@ -851,8 +852,8 @@
         assertEquals(0,visitor.getConflicts().size());
 
-        Way myWay = (Way)my.getPrimitiveById(4);
+        Way myWay = (Way)my.getPrimitiveById(4,OsmPrimitiveType.WAY);
         assertEquals(2, myWay.getNodesCount());
 
-        Node n = (Node)my.getPrimitiveById(1);
+        Node n = (Node)my.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertTrue(n != null);
     }
@@ -906,8 +907,8 @@
         assertEquals(0,visitor.getConflicts().size());
 
-        Relation r = (Relation)my.getPrimitiveById(4);
+        Relation r = (Relation)my.getPrimitiveById(4,OsmPrimitiveType.RELATION);
         assertEquals(2, r.getMembersCount());
 
-        Node n = (Node)my.getPrimitiveById(1);
+        Node n = (Node)my.getPrimitiveById(1,OsmPrimitiveType.NODE);
         assertTrue(n != null);
     }
@@ -942,15 +943,15 @@
         assertEquals(0,visitor.getConflicts().size());
 
-        OsmPrimitive p= my.getPrimitiveById(1);
+        OsmPrimitive p= my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertTrue(p.incomplete);
-        p= my.getPrimitiveById(2);
+        p= my.getPrimitiveById(2, OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertTrue(p.incomplete);
-        p= my.getPrimitiveById(3);
+        p= my.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertNotNull(p);
         assertTrue(p.incomplete);
 
-        Way w = (Way)my.getPrimitiveById(3);
+        Way w = (Way)my.getPrimitiveById(3, OsmPrimitiveType.WAY);
         assertNotNull(w);
         assertTrue(p.incomplete);
@@ -1005,15 +1006,15 @@
         assertEquals(0,visitor.getConflicts().size());
 
-        OsmPrimitive p= my.getPrimitiveById(1);
+        OsmPrimitive p= my.getPrimitiveById(1, OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertTrue(!p.incomplete);
-        p= my.getPrimitiveById(2);
+        p= my.getPrimitiveById(2, OsmPrimitiveType.NODE);
         assertNotNull(p);
         assertTrue(!p.incomplete);
-        p= my.getPrimitiveById(3);
+        p= my.getPrimitiveById(3,OsmPrimitiveType.WAY);
         assertNotNull(p);
         assertTrue(!p.incomplete);
 
-        Way w = (Way)my.getPrimitiveById(3);
+        Way w = (Way)my.getPrimitiveById(3,OsmPrimitiveType.WAY);
         assertNotNull(w);
         assertTrue(!p.incomplete);
Index: trunk/test/unit/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModelTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModelTest.java	(revision 2072)
+++ trunk/test/unit/org/openstreetmap/josm/gui/conflict/nodes/NodeListMergeModelTest.java	(revision 2077)
@@ -65,4 +65,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -75,5 +76,5 @@
 
         assertEquals(1, mergedNodes.size());
-        assertEquals(2, mergedNodes.get(0).id);
+        assertEquals(2, mergedNodes.get(0).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -89,4 +90,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -102,6 +104,6 @@
         mergedNodes = inspectNodeList(model, "Merged");
         assertEquals(2, mergedNodes.size());
-        assertEquals(2, mergedNodes.get(0).id);
-        assertEquals(1, mergedNodes.get(1).id);
+        assertEquals(2, mergedNodes.get(0).getId());
+        assertEquals(1, mergedNodes.get(1).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -120,7 +122,9 @@
 
         Way myWay = new Way(1);
-        myWay.addNode(new Node(2));
-        myWay.addNode(new Node(3));
-        Way theirWay = new Way(1);
+        myWay.incomplete = false;
+        myWay.addNode(new Node(2));
+        myWay.addNode(new Node(3));
+        Way theirWay = new Way(1);
+
 
         model.populate(myWay, theirWay);
@@ -133,6 +137,6 @@
         mergedNodes = inspectNodeList(model, "Merged");
         assertEquals(2, mergedNodes.size());
-        assertEquals(3, mergedNodes.get(0).id); // my node 3 at position 0
-        assertEquals(1, mergedNodes.get(1).id); // already merged node 1 at position 1
+        assertEquals(3, mergedNodes.get(0).getId()); // my node 3 at position 0
+        assertEquals(1, mergedNodes.get(1).getId()); // already merged node 1 at position 1
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -146,4 +150,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -160,7 +165,7 @@
         mergedNodes = inspectNodeList(model, "Merged");
         assertEquals(3, mergedNodes.size());
-        assertEquals(3, mergedNodes.get(0).id); // my node 3 at position 0
-        assertEquals(4, mergedNodes.get(1).id); // my node 4 at position 1
-        assertEquals(1, mergedNodes.get(2).id); // already merged node 1 at position 2
+        assertEquals(3, mergedNodes.get(0).getId()); // my node 3 at position 0
+        assertEquals(4, mergedNodes.get(1).getId()); // my node 4 at position 1
+        assertEquals(1, mergedNodes.get(2).getId()); // already merged node 1 at position 2
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -174,4 +179,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -184,5 +190,5 @@
 
         assertEquals(1, mergedNodes.size());
-        assertEquals(2, mergedNodes.get(0).id);
+        assertEquals(2, mergedNodes.get(0).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -195,4 +201,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -208,6 +215,6 @@
         mergedNodes = inspectNodeList(model, "Merged");
         assertEquals(2, mergedNodes.size());
-        assertEquals(1, mergedNodes.get(0).id); // already merged node 1 at position 0
-        assertEquals(2, mergedNodes.get(1).id); // copied node 2 at position 1
+        assertEquals(1, mergedNodes.get(0).getId()); // already merged node 1 at position 0
+        assertEquals(2, mergedNodes.get(1).getId()); // copied node 2 at position 1
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -221,4 +228,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -234,6 +242,6 @@
         mergedNodes = inspectNodeList(model, "Merged");
         assertEquals(2, mergedNodes.size());
-        assertEquals(1, mergedNodes.get(0).id); // already merged node 1 at position 0
-        assertEquals(3, mergedNodes.get(1).id); // my node 3 at position 1
+        assertEquals(1, mergedNodes.get(0).getId()); // already merged node 1 at position 0
+        assertEquals(3, mergedNodes.get(1).getId()); // my node 3 at position 1
 
 
@@ -248,4 +256,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(2));
         myWay.addNode(new Node(3));
@@ -262,7 +271,7 @@
         mergedNodes = inspectNodeList(model, "Merged");
         assertEquals(3, mergedNodes.size());
-        assertEquals(1, mergedNodes.get(0).id); // already merged node 1 at position 0
-        assertEquals(3, mergedNodes.get(1).id); // my node 3 at position 1
-        assertEquals(4, mergedNodes.get(2).id); // my node 4 at position 2
+        assertEquals(1, mergedNodes.get(0).getId()); // already merged node 1 at position 0
+        assertEquals(3, mergedNodes.get(1).getId()); // my node 3 at position 1
+        assertEquals(4, mergedNodes.get(2).getId()); // my node 4 at position 2
 
 
@@ -280,4 +289,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -293,8 +303,8 @@
 
         assertEquals(4, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id); // already merged node
-        assertEquals(1, mergedNodes.get(1).id);  // copied node 1 at position 1
-        assertEquals(11, mergedNodes.get(2).id); // already merged node
-        assertEquals(12, mergedNodes.get(3).id); // already merged node
+        assertEquals(10, mergedNodes.get(0).getId()); // already merged node
+        assertEquals(1, mergedNodes.get(1).getId());  // copied node 1 at position 1
+        assertEquals(11, mergedNodes.get(2).getId()); // already merged node
+        assertEquals(12, mergedNodes.get(3).getId()); // already merged node
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -308,4 +318,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -321,9 +332,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(1, mergedNodes.get(0).id);  // copied node 1 at position 0
-        assertEquals(2, mergedNodes.get(1).id);  // copied node 2 at position 1
-        assertEquals(10, mergedNodes.get(2).id); // already merged node
-        assertEquals(11, mergedNodes.get(3).id); // already merged node
-        assertEquals(12, mergedNodes.get(4).id); // already merged node
+        assertEquals(1, mergedNodes.get(0).getId());  // copied node 1 at position 0
+        assertEquals(2, mergedNodes.get(1).getId());  // copied node 2 at position 1
+        assertEquals(10, mergedNodes.get(2).getId()); // already merged node
+        assertEquals(11, mergedNodes.get(3).getId()); // already merged node
+        assertEquals(12, mergedNodes.get(4).getId()); // already merged node
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -336,4 +347,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -369,4 +381,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -382,8 +395,8 @@
 
         assertEquals(4, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id); // already merged node
-        assertEquals(11, mergedNodes.get(1).id); // already merged node
-        assertEquals(1, mergedNodes.get(2).id);  // copied node 1 at position 2
-        assertEquals(12, mergedNodes.get(3).id); // already merged node
+        assertEquals(10, mergedNodes.get(0).getId()); // already merged node
+        assertEquals(11, mergedNodes.get(1).getId()); // already merged node
+        assertEquals(1, mergedNodes.get(2).getId());  // copied node 1 at position 2
+        assertEquals(12, mergedNodes.get(3).getId()); // already merged node
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -397,4 +410,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -411,9 +425,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id); // already merged node
-        assertEquals(11, mergedNodes.get(1).id); // already merged node
-        assertEquals(12, mergedNodes.get(2).id); // already merged node
-        assertEquals(1, mergedNodes.get(3).id);  // copied node 1 at position 3
-        assertEquals(2, mergedNodes.get(4).id);  // copied node 2 at position 4
+        assertEquals(10, mergedNodes.get(0).getId()); // already merged node
+        assertEquals(11, mergedNodes.get(1).getId()); // already merged node
+        assertEquals(12, mergedNodes.get(2).getId()); // already merged node
+        assertEquals(1, mergedNodes.get(3).getId());  // copied node 1 at position 3
+        assertEquals(2, mergedNodes.get(4).getId());  // copied node 2 at position 4
 
 
@@ -427,4 +441,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -441,9 +456,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id); // already merged node
-        assertEquals(1, mergedNodes.get(1).id);  // copied node 1 at position 1
-        assertEquals(3, mergedNodes.get(2).id);  // copied node 3 at position 2
-        assertEquals(11, mergedNodes.get(3).id); // already merged node
-        assertEquals(12, mergedNodes.get(4).id); // already merged node
+        assertEquals(10, mergedNodes.get(0).getId()); // already merged node
+        assertEquals(1, mergedNodes.get(1).getId());  // copied node 1 at position 1
+        assertEquals(3, mergedNodes.get(2).getId());  // copied node 3 at position 2
+        assertEquals(11, mergedNodes.get(3).getId()); // already merged node
+        assertEquals(12, mergedNodes.get(4).getId()); // already merged node
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -456,4 +471,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -489,4 +505,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -502,7 +519,7 @@
 
         assertEquals(3, mergedNodes.size());
-        assertEquals(11, mergedNodes.get(0).id);
-        assertEquals(10, mergedNodes.get(1).id);
-        assertEquals(12, mergedNodes.get(2).id);
+        assertEquals(11, mergedNodes.get(0).getId());
+        assertEquals(10, mergedNodes.get(1).getId());
+        assertEquals(12, mergedNodes.get(2).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -515,4 +532,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -530,9 +548,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(11, mergedNodes.get(0).id);
-        assertEquals(10, mergedNodes.get(1).id);
-        assertEquals(12, mergedNodes.get(2).id);
-        assertEquals(14, mergedNodes.get(3).id);
-        assertEquals(13, mergedNodes.get(4).id);
+        assertEquals(11, mergedNodes.get(0).getId());
+        assertEquals(10, mergedNodes.get(1).getId());
+        assertEquals(12, mergedNodes.get(2).getId());
+        assertEquals(14, mergedNodes.get(3).getId());
+        assertEquals(13, mergedNodes.get(4).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -545,4 +563,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -560,9 +579,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(11, mergedNodes.get(0).id);
-        assertEquals(12, mergedNodes.get(1).id);
-        assertEquals(13, mergedNodes.get(2).id);
-        assertEquals(14, mergedNodes.get(3).id);
-        assertEquals(10, mergedNodes.get(4).id);
+        assertEquals(11, mergedNodes.get(0).getId());
+        assertEquals(12, mergedNodes.get(1).getId());
+        assertEquals(13, mergedNodes.get(2).getId());
+        assertEquals(14, mergedNodes.get(3).getId());
+        assertEquals(10, mergedNodes.get(4).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -578,4 +597,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -591,7 +611,7 @@
 
         assertEquals(3, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id);
-        assertEquals(12, mergedNodes.get(1).id);
-        assertEquals(11, mergedNodes.get(2).id);
+        assertEquals(10, mergedNodes.get(0).getId());
+        assertEquals(12, mergedNodes.get(1).getId());
+        assertEquals(11, mergedNodes.get(2).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -604,4 +624,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -619,9 +640,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id);
-        assertEquals(12, mergedNodes.get(1).id);
-        assertEquals(11, mergedNodes.get(2).id);
-        assertEquals(14, mergedNodes.get(3).id);
-        assertEquals(13, mergedNodes.get(4).id);
+        assertEquals(10, mergedNodes.get(0).getId());
+        assertEquals(12, mergedNodes.get(1).getId());
+        assertEquals(11, mergedNodes.get(2).getId());
+        assertEquals(14, mergedNodes.get(3).getId());
+        assertEquals(13, mergedNodes.get(4).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
@@ -634,4 +655,5 @@
 
         Way myWay = new Way(1);
+        myWay.incomplete = false;
         myWay.addNode(new Node(1));
         myWay.addNode(new Node(2));
@@ -649,9 +671,9 @@
 
         assertEquals(5, mergedNodes.size());
-        assertEquals(10, mergedNodes.get(0).id);
-        assertEquals(14, mergedNodes.get(1).id);
-        assertEquals(11, mergedNodes.get(2).id);
-        assertEquals(12, mergedNodes.get(3).id);
-        assertEquals(13, mergedNodes.get(4).id);
+        assertEquals(10, mergedNodes.get(0).getId());
+        assertEquals(14, mergedNodes.get(1).getId());
+        assertEquals(11, mergedNodes.get(2).getId());
+        assertEquals(12, mergedNodes.get(3).getId());
+        assertEquals(13, mergedNodes.get(4).getId());
 
         DefaultListSelectionModel mergedSelection = inspectListSelectionModel(model, "mergedEntriesSelectionModel");
