Index: trunk/src/org/openstreetmap/josm/data/osm/Tag.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/Tag.java	(revision 2995)
+++ trunk/src/org/openstreetmap/josm/data/osm/Tag.java	(revision 2996)
@@ -110,7 +110,6 @@
             Tag other = (Tag) obj;
             return key.equals(other.getKey()) && value.equals(other.getValue());
-        } else {
+        } else
             return false;
-        }
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 2995)
+++ trunk/src/org/openstreetmap/josm/data/osm/TagCollection.java	(revision 2996)
@@ -117,5 +117,5 @@
     }
 
-    private HashSet<Tag> tags;
+    private final HashSet<Tag> tags = new HashSet<Tag>();
 
     /**
@@ -123,5 +123,4 @@
      */
     public TagCollection() {
-        tags = new HashSet<Tag>();
     }
 
@@ -133,5 +132,4 @@
      */
     public TagCollection(TagCollection other) {
-        this();
         if (other != null) {
             tags.addAll(other.tags);
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 2995)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 2996)
@@ -222,7 +222,7 @@
         List<Command> cmds = new LinkedList<Command>();
 
-        if (getTagConflictResolverModel().getNumDecisions() > 0) {
-            TagCollection tc = getTagConflictResolverModel().getResolution();
-            cmds.addAll(buildTagChangeCommand(targetPrimitive, tc));
+        TagCollection allResolutions = getTagConflictResolverModel().getAllResolutions();
+        if (allResolutions.size() > 0) {
+            cmds.addAll(buildTagChangeCommand(targetPrimitive, allResolutions));
         }
         if (targetPrimitive.get("created_by") != null) {
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java	(revision 2995)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java	(revision 2996)
@@ -182,8 +182,18 @@
     }
 
+    //TODO Should this method work with all decisions or only with displayed decisions? For MergeNodes it should be
+    //all decisions, but this method is also used on other places, so I've made new method just for MergeNodes
     public TagCollection getResolution() {
         TagCollection tc = new TagCollection();
         for (String key: displayedKeys) {
             tc.add(decisions.get(key).getResolution());
+        }
+        return tc;
+    }
+
+    public TagCollection getAllResolutions() {
+        TagCollection tc = new TagCollection();
+        for (MultiValueResolutionDecision value: decisions.values()) {
+            tc.add(value.getResolution());
         }
         return tc;
