Index: /trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditor.java	(revision 6990)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueCellEditor.java	(revision 6991)
@@ -8,4 +8,6 @@
 import java.awt.event.FocusAdapter;
 import java.awt.event.FocusEvent;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
 import java.awt.event.KeyEvent;
 import java.util.concurrent.CopyOnWriteArrayList;
@@ -35,6 +37,11 @@
 public class MultiValueCellEditor extends AbstractCellEditor implements TableCellEditor{
 
+    /**
+     * Defines the interface for an object implementing navigation between rows
+     */
     public static interface NavigationListener {
+        /** Call when need to go to next row */
         void gotoNextDecision();
+        /** Call when need to go to previous row */
         void gotoPreviousDecision();
     }
@@ -51,5 +58,5 @@
     }
 
-    public void removeavigationListeners(NavigationListener listener) {
+    public void removeNavigationListeners(NavigationListener listener) {
         listeners.remove(listener);
     }
@@ -67,4 +74,7 @@
     }
 
+    /**
+     * Construct a new {@link MultiValueCellEditor}
+     */
     public MultiValueCellEditor() {
         editorModel = new DefaultComboBoxModel();
@@ -99,10 +109,26 @@
                 }
         );
+        editor.addItemListener(
+                new ItemListener() {
+                    @Override
+                    public void itemStateChanged(ItemEvent e) {
+                        if(e.getStateChange() == ItemEvent.SELECTED)
+                            fireEditingStopped();
+                    }
+                }
+        );
         editor.setRenderer(new EditorCellRenderer());
         listeners = new CopyOnWriteArrayList<NavigationListener>();
     }
 
+    /**
+     * Populate model with possible values for a decision, and select current choice.
+     * @param decision The {@link MultiValueResolutionDecision} to proceed
+     */
     protected void initEditor(MultiValueResolutionDecision decision) {
         editorModel.removeAllElements();
+        if (!decision.isDecided()) {
+            editorModel.addElement(MultiValueDecisionType.UNDECIDED);
+        }
         for (String value: decision.getValues()) {
             editorModel.addElement(value);
@@ -116,5 +142,5 @@
         switch(decision.getDecisionType()) {
         case UNDECIDED:
-            editor.setSelectedIndex(0);
+            editor.setSelectedItem(MultiValueDecisionType.UNDECIDED);
             break;
         case KEEP_ONE:
@@ -143,13 +169,20 @@
 
     /**
-     * The cell renderer used in the combo box
+     * The cell renderer used in the edit combo box
      *
      */
     private static class EditorCellRenderer extends JLabel implements ListCellRenderer {
 
+        /**
+         * Construct a new {@link EditorCellRenderer}.
+         */
         public EditorCellRenderer() {
             setOpaque(true);
         }
 
+        /**
+         * Set component color.
+         * @param selected true if is selected
+         */
         protected void renderColors(boolean selected) {
             if (selected) {
@@ -162,4 +195,8 @@
         }
 
+        /**
+         * Set text for a value
+         * @param value {@link String} or {@link MultiValueDecisionType}
+         */
         protected void renderValue(Object value) {
             setFont(UIManager.getFont("ComboBox.font"));
@@ -168,4 +205,8 @@
             } else if (MultiValueDecisionType.class.isInstance(value)) {
                 switch(MultiValueDecisionType.class.cast(value)) {
+                case UNDECIDED:
+                    setText(tr("Choose a value"));
+                    setFont(UIManager.getFont("ComboBox.font").deriveFont(Font.ITALIC + Font.BOLD));
+                    break;
                 case KEEP_NONE:
                     setText(tr("none"));
