Index: /trunk/src/org/openstreetmap/josm/gui/MapFrame.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 996)
+++ /trunk/src/org/openstreetmap/josm/gui/MapFrame.java	(revision 997)
@@ -60,4 +60,8 @@
 	public ConflictDialog conflictDialog;
 	/**
+	 * The dialog that shows all relations and lets the user edit them.
+	 */
+	public RelationListDialog relationListDialog;
+	/**
 	 * The panel list of all toggle dialog icons. To add new toggle dialog actions, use addToggleDialog
 	 * instead of adding directly to this list.
@@ -100,5 +104,5 @@
 		addToggleDialog(conflictDialog = new ConflictDialog());
 		addToggleDialog(new CommandStackDialog(this));
-		addToggleDialog(new RelationListDialog());
+		addToggleDialog(relationListDialog = new RelationListDialog());
 
 		// status line below the map
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 996)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/RelationListDialog.java	(revision 997)
@@ -18,4 +18,5 @@
 import javax.swing.JScrollPane;
 import javax.swing.ListSelectionModel;
+import javax.swing.event.ListSelectionListener;
 
 import org.openstreetmap.josm.Main;
@@ -144,3 +145,29 @@
 	}
 	
+	/**
+	 * Returns the currently selected relation, or null.
+	 * 
+	 * @return the currently selected relation, or null
+	 */
+	public Relation getCurrentRelation() {
+		return (Relation) displaylist.getSelectedValue();
+	}
+
+	/**
+	 * Adds a selection listener to the relation list.
+	 * 
+	 * @param listener the listener to add
+	 */
+	public void addListSelectionListener(ListSelectionListener listener) {
+		displaylist.addListSelectionListener(listener);
+	}
+
+	/**
+	 * Removes a selection listener from the relation list.
+	 * 
+	 * @param listener the listener to remove
+	 */
+	public void removeListSelectionListener(ListSelectionListener listener) {
+		displaylist.removeListSelectionListener(listener);
+	}
 }
