Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableCellRenderer.java	(revision 1792)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableCellRenderer.java	(revision 1793)
@@ -4,19 +4,15 @@
 import java.awt.Color;
 import java.awt.Component;
-import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 
-import javax.swing.BorderFactory;
 import javax.swing.ImageIcon;
 import javax.swing.JLabel;
 import javax.swing.JTable;
-import javax.swing.border.Border;
 import javax.swing.table.TableCellRenderer;
 
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
-import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.visitor.NameVisitor;
 import org.openstreetmap.josm.tools.ImageProvider;
@@ -27,19 +23,12 @@
  */
 public  class MemberTableCellRenderer extends JLabel implements TableCellRenderer {
-    private final static DecimalFormat COORD_FORMATTER = new DecimalFormat("###0.0000");
     public final static Color BGCOLOR_SELECTED = new Color(143,170,255);
     public final static Color BGCOLOR_EMPTY_ROW = new Color(234,234,234);
 
     public final static Color BGCOLOR_NOT_IN_OPPOSITE = new Color(255,197,197);
-    public final static Color BGCOLOR_IN_OPPOSITE = new Color(255,234,213);
-    public final static Color BGCOLOR_SAME_POSITION_IN_OPPOSITE = new Color(217,255,217);
+    public final static Color BGCOLOR_DOUBLE_ENTRY = new Color(255,234,213);
 
-    public final static Color BGCOLOR_PARTICIPAING_IN_COMPARISON = Color.BLACK;
-    public final static Color FGCOLOR_PARTICIPAING_IN_COMPARISON = Color.WHITE;
-
-    public final static Color BGCOLOR_FROZEN = new Color(234,234,234);
 
     private HashMap<OsmPrimitiveType, ImageIcon>  icons;
-    private  Border rowNumberBorder = null;
 
     /**
@@ -107,9 +96,10 @@
     }
 
-
-    protected void renderBackground( boolean isSelected) {
+    protected void renderBackground( MemberTableModel model, OsmPrimitive primitive, boolean isSelected) {
         Color bgc = Color.WHITE;
         if (isSelected) {
             bgc = BGCOLOR_SELECTED;
+        } else if (primitive != null && model.getNumMembersWithPrimitive(primitive) > 1) {
+            bgc = BGCOLOR_DOUBLE_ENTRY;
         }
         setBackground(bgc);
@@ -133,17 +123,20 @@
 
         reset();
-        renderBackground(isSelected);
+
         renderForeground(isSelected);
         switch(column) {
         case 0:
             String role = (String)value;
+            renderBackground(getModel(table), null, isSelected);
             setText(role);
             break;
         case 1:
             OsmPrimitive primitive = (OsmPrimitive)value;
+            renderBackground(getModel(table), primitive, isSelected);
             renderPrimitive(primitive);
             break;
         case 2:
             setText("");
+            renderBackground(getModel(table), null, isSelected);
             break;
         default:
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 1792)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModel.java	(revision 1793)
@@ -310,3 +310,19 @@
         fireMakeMemberVisible(idx+1);
     }
+
+    /**
+     * Replies the number of members which refer to a particular primitive
+     * 
+     * @param primitive the primitive
+     * @return the number of members which refer to a particular primitive
+     */
+    public int getNumMembersWithPrimitive(OsmPrimitive primitive) {
+        int count  = 0;
+        for (RelationMember member : members) {
+            if (member.member.equals(primitive)) {
+                count++;
+            }
+        }
+        return count;
+    }
 }
