Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java	(revision 6714)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolutionUtil.java	(revision 6715)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.gui.conflict.tags;
 
+import java.util.ArrayList;
 import java.util.Collection;
 
@@ -25,8 +26,8 @@
      *  For tags which are not present on at least one of the merged nodes, the empty value ""
      *  is added to the list of values for this tag, but only if there are at least two
-     *  primitives with tags.
+     *  primitives with tags, and at least one tagged primitive do not have this tag.
      *
      * @param tc the tag collection
-     * @param merged the collection of merged  primitives
+     * @param merged the collection of merged primitives
      */
     public static void normalizeTagCollectionBeforeEditing(TagCollection tc, Collection<? extends OsmPrimitive> merged) {
@@ -37,11 +38,11 @@
         }
 
-        int numNodesWithTags = 0;
+        Collection<OsmPrimitive> taggedPrimitives = new ArrayList<OsmPrimitive>();
         for (OsmPrimitive p: merged) {
-            if (!p.getKeys().isEmpty()) {
-                numNodesWithTags++;
+            if (p.isTagged()) {
+                taggedPrimitives.add(p);
             }
         }
-        if (numNodesWithTags <= 1)
+        if (taggedPrimitives.size() <= 1)
             return;
 
@@ -50,5 +51,5 @@
             // on all merged nodes
             //
-            for (OsmPrimitive p: merged) {
+            for (OsmPrimitive p: taggedPrimitives) {
                 if (p.get(key) == null) {
                     tc.add(new Tag(key, "")); // add a tag with key and empty value
