Index: trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 9267)
+++ trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 9268)
@@ -1165,5 +1165,5 @@
                         tr("Cannot merge primitives with different ids. This id is {0}, the other is {1}", id, other.getId()));
 
-            setKeys(other.getKeys());
+            setKeys(other.hasKeys() ? other.getKeys() : null);
             timestamp = other.timestamp;
             version = other.version;
@@ -1241,5 +1241,5 @@
     public void load(PrimitiveData data) {
         // Write lock is provided by subclasses
-        setKeys(data.getKeys());
+        setKeys(data.hasKeys() ? data.getKeys() : null);
         setRawTimestamp(data.getRawTimestamp());
         user = data.getUser();
@@ -1263,5 +1263,5 @@
     protected void saveCommonAttributes(PrimitiveData data) {
         data.setId(id);
-        data.setKeys(getKeys());
+        data.setKeys(hasKeys() ? getKeys() : null);
         data.setRawTimestamp(getRawTimestamp());
         data.setUser(user);
