Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 12932)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 12933)
@@ -63,4 +63,5 @@
 import org.openstreetmap.josm.gui.ScrollViewport;
 import org.openstreetmap.josm.gui.datatransfer.ClipboardUtils;
+import org.openstreetmap.josm.gui.dialogs.relation.actions.AbstractRelationEditorAction;
 import org.openstreetmap.josm.gui.dialogs.relation.actions.AddSelectedAfterSelection;
 import org.openstreetmap.josm.gui.dialogs.relation.actions.AddSelectedAtEndAction;
@@ -83,4 +84,5 @@
 import org.openstreetmap.josm.gui.dialogs.relation.actions.RemoveSelectedAction;
 import org.openstreetmap.josm.gui.dialogs.relation.actions.ReverseAction;
+import org.openstreetmap.josm.gui.dialogs.relation.actions.SelectAction;
 import org.openstreetmap.josm.gui.dialogs.relation.actions.SelectPrimitivesForSelectedMembersAction;
 import org.openstreetmap.josm.gui.dialogs.relation.actions.SelectedMembersForSelectionAction;
@@ -143,4 +145,8 @@
     private final ApplyAction applyAction;
     /**
+     * Action for performing the {@link SelectAction}
+     */
+    private final SelectAction selectAction;
+    /**
      * Action for performing the {@link DuplicateRelationAction}
      */
@@ -245,4 +251,5 @@
         refreshAction = new RefreshAction(memberTable, memberTableModel, tagEditorPanel.getModel(), getLayer(), this);
         applyAction = new ApplyAction(memberTable, memberTableModel, tagEditorPanel.getModel(), getLayer(), this);
+        selectAction = new SelectAction(getLayer(), this);
         duplicateAction = new DuplicateRelationAction(memberTableModel, tagEditorPanel.getModel(), getLayer());
         deleteAction = new DeleteCurrentRelationAction(getLayer(), this);
@@ -252,5 +259,5 @@
         cancelAction = new CancelAction(memberTable, memberTableModel, tagEditorPanel.getModel(), getLayer(), this, tfRole);
 
-        getContentPane().add(buildToolBar(refreshAction, applyAction, duplicateAction, deleteAction), BorderLayout.NORTH);
+        getContentPane().add(buildToolBar(refreshAction, applyAction, selectAction, duplicateAction, deleteAction), BorderLayout.NORTH);
         getContentPane().add(tabbedPane, BorderLayout.CENTER);
         getContentPane().add(buildOkCancelButtonPanel(okAction, cancelAction), BorderLayout.SOUTH);
@@ -331,4 +338,13 @@
 
     /**
+     * Select relation.
+     * @see SelectAction
+     * @since 12933
+     */
+    public void select() {
+        selectAction.actionPerformed(null);
+    }
+
+    /**
      * Cancel changes.
      * @see CancelAction
@@ -340,19 +356,14 @@
     /**
      * Creates the toolbar
-     * @param refreshAction refresh action
-     * @param applyAction apply action
-     * @param duplicateAction duplicate action
-     * @param deleteAction delete action
-     *
+     * @param actions relation toolbar actions
      * @return the toolbar
-     */
-    protected static JToolBar buildToolBar(RefreshAction refreshAction, ApplyAction applyAction,
-            DuplicateRelationAction duplicateAction, DeleteCurrentRelationAction deleteAction) {
+     * @since 12933
+     */
+    protected static JToolBar buildToolBar(AbstractRelationEditorAction... actions) {
         JToolBar tb = new JToolBar();
         tb.setFloatable(false);
-        tb.add(refreshAction);
-        tb.add(applyAction);
-        tb.add(duplicateAction);
-        tb.add(deleteAction);
+        for (AbstractRelationEditorAction action : actions) {
+            tb.add(action);
+        }
         return tb;
     }
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java	(revision 12932)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/AbstractRelationEditorAction.java	(revision 12933)
@@ -17,5 +17,5 @@
  * @since 9496
  */
-abstract class AbstractRelationEditorAction extends AbstractAction implements TableModelListener, ListSelectionListener {
+public abstract class AbstractRelationEditorAction extends AbstractAction implements TableModelListener, ListSelectionListener {
     protected final MemberTable memberTable;
     protected final MemberTableModel memberTableModel;
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SelectAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SelectAction.java	(revision 12933)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/actions/SelectAction.java	(revision 12933)
@@ -0,0 +1,44 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.gui.dialogs.relation.actions;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.event.ActionEvent;
+
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.gui.dialogs.relation.IRelationEditor;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.ImageProvider;
+
+/**
+ * Select the currently edited relation.
+ * @since 12933
+ */
+public class SelectAction extends AbstractRelationEditorAction {
+
+    /**
+     * Constructs a new {@code SelectAction}.
+     * @param layer OSM data layer
+     * @param editor relation editor
+     */
+    public SelectAction(OsmDataLayer layer, IRelationEditor editor) {
+        super(null, null, null, layer, editor);
+        putValue(NAME, tr("Select"));
+        putValue(SHORT_DESCRIPTION, tr("Select the currently edited relation"));
+        new ImageProvider("dialogs", "select").getResource().attachImageIcon(this, true);
+        updateEnabledState();
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        Relation toSelect = editor.getRelation();
+        if (toSelect == null)
+            return;
+        layer.data.setSelected(toSelect);
+    }
+
+    @Override
+    protected void updateEnabledState() {
+        setEnabled(editor.getRelationSnapshot() != null);
+    }
+}
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java	(revision 12932)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditorTest.java	(revision 12933)
@@ -23,4 +23,5 @@
 import org.openstreetmap.josm.gui.dialogs.relation.actions.OKAction;
 import org.openstreetmap.josm.gui.dialogs.relation.actions.RefreshAction;
+import org.openstreetmap.josm.gui.dialogs.relation.actions.SelectAction;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.tagging.TagEditorModel;
@@ -143,4 +144,5 @@
                 new RefreshAction(memberTable, memberTableModel, tagModel, layer, re),
                 new ApplyAction(memberTable, memberTableModel, tagModel, layer, re),
+                new SelectAction(layer, re),
                 new DuplicateRelationAction(memberTableModel, tagModel, layer),
                 new DeleteCurrentRelationAction(layer, re)));
Index: /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java	(revision 12932)
+++ /trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/actions/RelationEditorActionsTest.java	(revision 12933)
@@ -60,4 +60,5 @@
         new PasteMembersAction(memberTable, layer, editor).actionPerformed(null);
 
+        new SelectAction(layer, editor).actionPerformed(null);
         new DeleteCurrentRelationAction(layer, editor).actionPerformed(null);
 
