Index: trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 9193)
+++ trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 9194)
@@ -15,5 +15,5 @@
  */
 public class TagTableCellRenderer extends JLabel implements TableCellRenderer {
-    public static final Color BGCOLOR_DIFFERENCE = new Color(255, 197, 197);
+    public static final Color BGCOLOR_SELECTED = new Color(143, 170, 255);
 
     /**
@@ -24,46 +24,20 @@
     }
 
-    protected void renderName(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
-        String text = key;
+    protected void setBackground(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
         Color bgColor = UIManager.getColor("Table.background");
-        Color fgColor = UIManager.getColor("Table.foreground");
-        if (!model.hasTag(key)) {
-            text = "";
-            bgColor = BGCOLOR_DIFFERENCE;
-        } else if (!model.oppositeHasTag(key)) {
-            bgColor = BGCOLOR_DIFFERENCE;
+        if (!model.hasTag(key) && model.isCurrentPointInTime()
+                || !model.oppositeHasTag(key) && model.isReferencePointInTime()) {
+            bgColor = TwoColumnDiff.Item.DiffItemType.DELETED.getColor();
+        } else if (!model.oppositeHasTag(key) && model.isCurrentPointInTime()
+                || !model.hasTag(key) && model.isReferencePointInTime()) {
+            bgColor = TwoColumnDiff.Item.DiffItemType.INSERTED.getColor();
+        } else if (model.hasTag(key) && model.oppositeHasTag(key) && !model.hasSameValueAsOpposite(key)) {
+            bgColor = TwoColumnDiff.Item.DiffItemType.CHANGED.getColor();
         }
         if (isSelected) {
-            bgColor = UIManager.getColor("Table.backgroundSelected");
-            fgColor = UIManager.getColor("Table.foregroundSelected");
+            bgColor = BGCOLOR_SELECTED;
         }
 
-        setText(text);
-        setToolTipText(text);
         setBackground(bgColor);
-        setForeground(fgColor);
-    }
-
-    protected void renderValue(String key, HistoryBrowserModel.TagTableModel model, boolean isSelected) {
-        String text = "";
-        Color bgColor = UIManager.getColor("Table.background");
-        Color fgColor = UIManager.getColor("Table.foreground");
-        if (!model.hasTag(key)) {
-            bgColor = BGCOLOR_DIFFERENCE;
-        } else {
-            text = model.getValue(key);
-            if (!model.hasSameValueAsOpposite(key)) {
-                bgColor = BGCOLOR_DIFFERENCE;
-            }
-        }
-        if (isSelected) {
-            bgColor = UIManager.getColor("Table.backgroundSelected");
-            fgColor = UIManager.getColor("Table.foregroundSelected");
-        }
-
-        setText(text);
-        setToolTipText(text);
-        setBackground(bgColor);
-        setForeground(fgColor);
     }
 
@@ -81,9 +55,13 @@
         case 0:
             // the name column
-            renderName(key, model, isSelected);
+            setText(model.hasTag(key) ? key : "");
+            setToolTipText(getText());
+            setBackground(key, model, isSelected);
             break;
         case 1:
             // the value column
-            renderValue(key, model, isSelected);
+            setText(model.hasTag(key) ? model.getValue(key) : "");
+            setToolTipText(getText());
+            setBackground(key, model, isSelected);
             break;
         }
