Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 18782)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 18783)
@@ -322,5 +322,11 @@
     private synchronized boolean isConflictSelected() {
         final ListSelectionModel selModel = lstConflicts.getSelectionModel();
-        return selModel.getMinSelectionIndex() >= 0 && selModel.getMaxSelectionIndex() >= selModel.getMinSelectionIndex();
+        final int minSelectionIndex = selModel.getMinSelectionIndex();
+        final int maxSelectionIndex = selModel.getMaxSelectionIndex();
+        final int maxIndex = conflicts.size();
+        // if minSelectionIndex < 0, nothing is selected
+        // if minSelectionIndex > maxIndex, then nothing is selected (we are operating with an old selection context, most likely)
+        // if maxSelectionIndex < minSelectionIndex, _something_ funny is going on. Or there was a typo in the original code.
+        return minSelectionIndex >= 0 && maxIndex > minSelectionIndex && maxSelectionIndex >= minSelectionIndex;
     }
 
@@ -369,4 +375,6 @@
             btnResolveMy.setVisible(ExpertToggleAction.isExpert());
             btnResolveTheir.setVisible(ExpertToggleAction.isExpert());
+            ((ResolveAction) btnResolveMy.getAction()).valueChanged(null);
+            ((ResolveAction) btnResolveTheir.getAction()).valueChanged(null);
         }
 
@@ -529,5 +537,5 @@
                 }
             }
-            UndoRedoHandler.getInstance().add(new SequenceCommand(name, commands));
+                UndoRedoHandler.getInstance().add(new SequenceCommand(name, commands));
             refreshView();
         }
