Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1800)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 1801)
@@ -347,5 +347,5 @@
         gc.fill = GridBagConstraints.BOTH;
         gc.anchor = GridBagConstraints.CENTER;
-        gc.weightx = 0.8;
+        gc.weightx = 0.6;
         gc.weighty = 1.0;
         pnl.add(scrollPane, gc);
@@ -359,5 +359,5 @@
         gc.gridx = 3;
         gc.gridy = 1;
-        gc.weightx = 0.2;
+        gc.weightx = 0.4;
         gc.weighty = 1.0;
         pnl.add(buildSelectionTablePanel(), gc);
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java	(revision 1800)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/relation/SelectionTableModel.java	(revision 1801)
@@ -1,5 +1,5 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.dialogs.relation;
-
+import static org.openstreetmap.josm.tools.I18n.tr;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -22,9 +22,18 @@
     private ArrayList<OsmPrimitive> cache;
 
-    public SelectionTableModel(OsmDataLayer layer) {
+    /**
+     * constructor
+     * 
+     * @param layer  the data layer. Must not be null.
+     * @exception IllegalArgumentException thrown if layer is null
+     */
+    public SelectionTableModel(OsmDataLayer layer) throws IllegalArgumentException {
+        if (layer == null)
+            throw new IllegalArgumentException(tr("parameter ''{0}'' must not be null", "layer"));
         this.layer = layer;
         cache = new ArrayList<OsmPrimitive>();
         DataSet.selListeners.add(this);
         Layer.listeners.add(this);
+        populateSelectedPrimitives(layer);
     }
 
@@ -84,3 +93,13 @@
         return cache;
     }
+
+    /**
+     * populates the model with the primitives currently selected in
+     * <code>layer</code>
+     * 
+     * @param layer  the data layer
+     */
+    protected void populateSelectedPrimitives(OsmDataLayer layer) {
+        selectionChanged(layer.data.getSelected());
+    }
 }
