Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 5334)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMergeModel.java	(revision 5335)
@@ -31,4 +31,5 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
+import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.gui.HelpAwareOptionPane;
 import org.openstreetmap.josm.gui.help.HelpUtil;
@@ -713,5 +714,13 @@
         @Override
         public OsmPrimitive getReferredPrimitive(int idx) {
-            return (OsmPrimitive) getValueAt(idx, 1);
+            Object value = getValueAt(idx, 1);
+            if (value instanceof OsmPrimitive) {
+                return (OsmPrimitive) value;
+            } else if (value instanceof RelationMember) {
+                return ((RelationMember)value).getMember();
+            } else {
+                System.err.println("Unknown object type: "+value);
+                return null;
+            }
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java	(revision 5334)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java	(revision 5335)
@@ -18,5 +18,7 @@
 import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Observable;
 import java.util.Observer;
@@ -36,5 +38,10 @@
 import javax.swing.event.ListSelectionListener;
 
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.PrimitiveId;
+import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.gui.widgets.OsmPrimitivesTable;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
@@ -1024,3 +1031,32 @@
         }
     }
+    
+    protected final <P extends OsmPrimitive> OsmDataLayer findLayerFor(P primitive) {
+        if (primitive != null) {
+            List<OsmDataLayer> layers = Main.map.mapView.getLayersOfType(OsmDataLayer.class);
+            // Find layer with same dataset
+            for (OsmDataLayer layer : layers) {
+                if (layer.data == primitive.getDataSet()) {
+                    return layer;
+                }
+            }
+            // Conflict after merging layers: a dataset could be no more in any layer, try to find another layer with same primitive
+            for (OsmDataLayer layer : layers) {
+                final Collection<? extends OsmPrimitive> collection;
+                if (primitive instanceof Way) {
+                    collection = layer.data.getWays();
+                } else if (primitive instanceof Relation) {
+                    collection = layer.data.getRelations();
+                } else {
+                    collection = layer.data.allPrimitives();
+                }
+                for (OsmPrimitive p : collection) {
+                    if (p.getPrimitiveId().equals(primitive.getPrimitiveId())) {
+                        return layer;
+                    }
+                }
+            }
+        }
+        return null;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMerger.java	(revision 5334)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/nodes/NodeListMerger.java	(revision 5335)
@@ -2,9 +2,6 @@
 package org.openstreetmap.josm.gui.conflict.pair.nodes;
 
-import java.util.List;
-
 import javax.swing.JScrollPane;
 
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.osm.Node;
@@ -13,5 +10,4 @@
 import org.openstreetmap.josm.gui.conflict.pair.IConflictResolver;
 import org.openstreetmap.josm.gui.conflict.pair.ListMerger;
-import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 
 /**
@@ -65,23 +61,4 @@
     }
     
-    protected OsmDataLayer findLayerFor(Way w) {
-        List<OsmDataLayer> layers = Main.map.mapView.getLayersOfType(OsmDataLayer.class);
-        // Find layer with same dataset
-        for (OsmDataLayer layer : layers) {
-            if (layer.data == w.getDataSet()) {
-                return layer;
-            }
-        }
-        // Conflict after merging layers: a dataset could be no more in any layer, try to find another layer with same primitive
-        for (OsmDataLayer layer : layers) {
-            for (Way way : layer.data.getWays()) {
-                if (way.getPrimitiveId().equals(w.getPrimitiveId())) {
-                    return layer;
-                }
-            }
-        }
-        return null;
-    }
-
     public void deletePrimitive(boolean deleted) {
         if (deleted) {
Index: trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMerger.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMerger.java	(revision 5334)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/pair/relation/RelationMemberMerger.java	(revision 5335)
@@ -50,6 +50,9 @@
 
     public void populate(Conflict<? extends OsmPrimitive> conflict) {
-        RelationMemberListMergeModel model = (RelationMemberListMergeModel)getModel();
-        model.populate((Relation)conflict.getMy(), (Relation)conflict.getTheir(), conflict.getMergedMap());
+        Relation myRel = (Relation)conflict.getMy();
+        Relation theirRel = (Relation)conflict.getTheir();
+        ((RelationMemberListMergeModel)model).populate(myRel, theirRel, conflict.getMergedMap());
+        myEntriesTable.setLayer(findLayerFor(myRel));
+        theirEntriesTable.setLayer(findLayerFor(theirRel));
     }
 
