Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 6801)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/CombinePrimitiveResolverDialog.java	(revision 6802)
@@ -234,4 +234,14 @@
     }
 
+    /**
+     * Replies true if all tag and relation member conflicts have been decided.
+     *
+     * @return true if all tag and relation member conflicts have been decided; false otherwise
+     */
+    public boolean isResolvedCompletely() {
+        return getTagConflictResolverModel().isResolvedCompletely()
+                && getRelationMemberConflictResolverModel().isResolvedCompletely();
+    }
+
     protected List<Command> buildTagChangeCommand(OsmPrimitive primitive, TagCollection tc) {
         LinkedList<Command> cmds = new LinkedList<Command>();
@@ -517,5 +527,5 @@
 
         // Resolve tag conflicts if necessary
-        if (!completeWayTags.isApplicableToPrimitive() || !parentRelations.isEmpty()) {
+        if (!dialog.isResolvedCompletely()) {
             dialog.setVisible(true);
             if (dialog.isCanceled()) {
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java	(revision 6801)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/RelationMemberConflictResolverModel.java	(revision 6802)
@@ -37,4 +37,14 @@
     private int numConflicts;
     private PropertyChangeSupport support;
+
+    /**
+     * Replies true if each {@link MultiValueResolutionDecision} is decided.
+     *
+     * @return true if each {@link MultiValueResolutionDecision} is decided; false
+     * otherwise
+     */
+    public boolean isResolvedCompletely() {
+        return numConflicts == 0;
+    }
 
     /**
Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java	(revision 6801)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/TagConflictResolverModel.java	(revision 6802)
@@ -258,18 +258,15 @@
      */
     public void prepareDefaultTagDecisions() {
-        // Do not suggest to keep all values in order to reduce the wrong usage of semicolon values, see #9104!
-        // Do not suggest to keep the single value in order to avoid long highways to become tunnels+bridges+...
-
-        /*
         for (MultiValueResolutionDecision decision: decisions.values()) {
             List<String> values = decision.getValues();
             values.remove("");
             if (values.size() == 1) {
+                // TODO: Do not suggest to keep the single value in order to avoid long highways to become tunnels+bridges+... (only if both primitives are tagged)
                 decision.keepOne(values.get(0));
             } else {
-                decision.keepAll();
-            }
-        }
-        */
+                // Do not suggest to keep all values in order to reduce the wrong usage of semicolon values, see #9104!
+                //decision.keepAll();
+            }
+        }
         rebuild();
     }
