Index: trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 585)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 586)
@@ -5,4 +5,6 @@
 
 import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+import java.awt.GridBagLayout;
 import java.awt.GridLayout;
 import java.awt.event.ActionEvent;
@@ -28,4 +30,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.layer.Layer.LayerChangeListener;
+import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -67,12 +70,19 @@
 		add(new JScrollPane(displaylist), BorderLayout.CENTER);
 
-		JPanel buttonPanel = new JPanel(new GridLayout(1,3));
-
-		buttonPanel.add(createButton(marktr("Add Relation"), "addrelation", tr("Create a new relation"), -1, new ActionListener() {
+		JPanel buttonPanel = new JPanel(new GridBagLayout());
+		
+		buttonPanel.add(createButton(marktr("New"), "addrelation", tr("Create a new relation"), -1, new ActionListener() {
 			public void actionPerformed(ActionEvent e) {
 				// call relation editor with null argument to create new relation
 				new RelationEditor(null).setVisible(true);
 			}
-		}));
+		}), GBC.std());
+		
+		buttonPanel.add(createButton(marktr("Select"), "select", tr("Select this relation"), -1, new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				// replace selection with the relation from the list
+				Main.ds.setSelected((Relation)displaylist.getSelectedValue());
+			}
+		}), GBC.std());
 		
 		buttonPanel.add(createButton(marktr("Edit"), "edit", tr( "Open an editor for the selected relation"), -1, new ActionListener() {
@@ -82,7 +92,7 @@
 					new RelationEditor(toEdit).setVisible(true);				
 			}
-		}));
+		}), GBC.std());
 		
-		buttonPanel.add(createButton(marktr("Delete"), "delete", tr("Delete the selected relation"), -1, new ActionListener() {
+		buttonPanel.add(createButton("", "delete", tr("Delete the selected relation"), -1, new ActionListener() {
 			public void actionPerformed(ActionEvent e) {
 				Relation toDelete = (Relation) displaylist.getSelectedValue();
@@ -92,5 +102,5 @@
 				}
 			}
-		}));
+		}), GBC.eol());
 		Layer.listeners.add(this);
 		add(buttonPanel, BorderLayout.SOUTH);
