Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 7656)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 7657)
@@ -201,5 +201,13 @@
                 OsmDataLayer layer = Main.main.getEditLayer();
                 if (layer == null) return;
-                layer.data.setSelected(Collections.singleton(model.getElementAt(idx)));
+                OsmPrimitive osm = model.getElementAt(idx);
+                Collection<OsmPrimitive> sel = layer.data.getSelected();
+                if (sel.size() != 1 || !sel.iterator().next().equals(osm)) {
+                    // Select primitive if it's not the whole current selection
+                    layer.data.setSelected(Collections.singleton(osm));
+                } else if (osm instanceof Relation) {
+                    // else open relation editor if applicable
+                    actEditRelationSelection.actionPerformed(null);
+                }
             } else if (highlightEnabled && Main.isDisplayingMapView()) {
                 if (helper.highlightOnly(model.getElementAt(idx))) {
