Index: trunk/src/org/openstreetmap/josm/gui/history/NodeListTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/NodeListTableCellRenderer.java	(revision 16457)
+++ trunk/src/org/openstreetmap/josm/gui/history/NodeListTableCellRenderer.java	(revision 16458)
@@ -37,5 +37,5 @@
     }
 
-    protected void renderNode(TwoColumnDiff.Item item, boolean isSelected) {
+    protected void renderNode(TwoColumnDiff.Item item, boolean isSelected, boolean hasFocus) {
         String text = "";
         setIcon(nodeIcon);
@@ -43,14 +43,10 @@
             text = tr("Node {0}", item.value.toString());
         }
-        Color bgColor = item.state.getColor();
         if (item.state == DiffItemType.EMPTY) {
             text = "";
             setIcon(null);
         }
-        if (isSelected) {
-            bgColor = BGCOLOR_SELECTED;
-        }
         setText(text);
-        GuiHelper.setBackgroundReadable(this, bgColor);
+        GuiHelper.setBackgroundReadable(this, item.state.getColor(isSelected, hasFocus));
     }
 
@@ -61,5 +57,5 @@
 
         if (value != null) {
-            renderNode((TwoColumnDiff.Item) value, isSelected);
+            renderNode((TwoColumnDiff.Item) value, isSelected, hasFocus);
         }
         return this;
Index: trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java	(revision 16457)
+++ trunk/src/org/openstreetmap/josm/gui/history/RelationMemberListTableCellRenderer.java	(revision 16458)
@@ -41,5 +41,4 @@
         setText(text);
         setToolTipText(text);
-        GuiHelper.setBackgroundReadable(this, diffItem.state.getColor());
     }
 
@@ -57,5 +56,4 @@
         setText(text);
         setToolTipText(text);
-        GuiHelper.setBackgroundReadable(this, diffItem.state.getColor());
     }
 
@@ -78,4 +76,5 @@
         }
 
+        GuiHelper.setBackgroundReadable(this, member.state.getColor(isSelected, hasFocus));
         return this;
     }
Index: trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 16457)
+++ trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 16458)
@@ -7,5 +7,4 @@
 import javax.swing.JLabel;
 import javax.swing.JTable;
-import javax.swing.UIManager;
 import javax.swing.table.TableCellRenderer;
 
@@ -34,23 +33,17 @@
 
     protected void setBackgroundReadable(String key, TagTableModel model, boolean isSelected, boolean hasFocus, boolean isValue) {
-        Color bgColor = UIManager.getColor("Table.background");
+        final TwoColumnDiff.Item.DiffItemType diffItemType;
         if ((!model.hasTag(key) && model.isCurrentPointInTime())
                 || (!model.oppositeHasTag(key) && model.isReferencePointInTime())) {
-            bgColor = TwoColumnDiff.Item.DiffItemType.DELETED.getColor();
+            diffItemType = TwoColumnDiff.Item.DiffItemType.DELETED;
         } else if ((!model.oppositeHasTag(key) && model.isCurrentPointInTime())
                 || (!model.hasTag(key) && model.isReferencePointInTime())) {
-            bgColor = TwoColumnDiff.Item.DiffItemType.INSERTED.getColor();
+            diffItemType = TwoColumnDiff.Item.DiffItemType.INSERTED;
         } else if (isValue && model.hasTag(key) && model.oppositeHasTag(key) && !model.hasSameValueAsOpposite(key)) {
-            bgColor = TwoColumnDiff.Item.DiffItemType.CHANGED.getColor();
+            diffItemType = TwoColumnDiff.Item.DiffItemType.CHANGED;
+        } else {
+            diffItemType = TwoColumnDiff.Item.DiffItemType.EMPTY;
         }
-        if (isSelected) {
-            if (hasFocus) {
-                bgColor = BGCOLOR_SELECTED_FOCUS;
-            } else {
-                bgColor = BGCOLOR_SELECTED;
-            }
-        }
-
-        GuiHelper.setBackgroundReadable(this, bgColor);
+        GuiHelper.setBackgroundReadable(this, diffItemType.getColor(isSelected, hasFocus));
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java	(revision 16457)
+++ trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java	(revision 16458)
@@ -46,4 +46,14 @@
             public Color getColor() {
                 return color;
+            }
+
+            public Color getColor(boolean isSelected, boolean hasFocus) {
+                if (isSelected && hasFocus) {
+                    return TagTableCellRenderer.BGCOLOR_SELECTED_FOCUS;
+                } else if (isSelected) {
+                    return TagTableCellRenderer.BGCOLOR_SELECTED;
+                } else {
+                    return getColor();
+                }
             }
         }
