Index: /trunk/src/org/openstreetmap/josm/data/osm/history/History.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 17902)
+++ /trunk/src/org/openstreetmap/josm/data/osm/history/History.java	(revision 17903)
@@ -192,12 +192,14 @@
     /**
      * Replies the history primitive which changed the given key.
-     * @param version the version
+     * @param primitive the reference primitive (the history up to and including this primitive is considered)
      * @param key the OSM key
+     * @param isLatest whether this relates to a not yet committed changeset
      * @return the history primitive which changed the given key
      */
-    public HistoryOsmPrimitive getWhichChangedTag(long version, String key) {
-        HistoryOsmPrimitive primitive = getByVersion(version);
+    public HistoryOsmPrimitive getWhichChangedTag(HistoryOsmPrimitive primitive, String key, boolean isLatest) {
         if (primitive == null) {
             return null;
+        } else if (isLatest && !Objects.equals(getLatest().get(key), primitive.get(key))) {
+            return primitive;
         }
         for (int i = versions.indexOf(primitive); i > 0; i--) {
Index: /trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 17902)
+++ /trunk/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java	(revision 17903)
@@ -714,5 +714,5 @@
      */
     public Color getVersionColor(HistoryOsmPrimitive primitive) {
-        return dateScale.getColor(primitive.getInstant().toEpochMilli());
+        return dateScale.getColor(isLatest(primitive) ? System.currentTimeMillis() : primitive.getInstant().toEpochMilli());
     }
 }
Index: /trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 17902)
+++ /trunk/src/org/openstreetmap/josm/gui/history/TagTableCellRenderer.java	(revision 17903)
@@ -63,5 +63,5 @@
                 HistoryOsmPrimitive primitive = model.getWhichChangedTag(key);
                 if (primitive != null) {
-                    text = "v" + primitive.getVersion();
+                    text = model.getVersionString(primitive);
                     tooltip = tr("Key ''{0}'' was changed in version {1}", key, primitive.getVersion());
                     setBorder(BorderFactory.createMatteBorder(0, 0, 0, 2, model.getVersionColor(primitive)));
Index: /trunk/src/org/openstreetmap/josm/gui/history/TagTableModel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/history/TagTableModel.java	(revision 17902)
+++ /trunk/src/org/openstreetmap/josm/gui/history/TagTableModel.java	(revision 17903)
@@ -93,5 +93,14 @@
         if (primitive == null)
             return null;
-        return model.getHistory().getWhichChangedTag(primitive.getVersion(), key);
+        return model.getHistory().getWhichChangedTag(primitive, key, model.isLatest(primitive));
+    }
+
+    /**
+     * Returns a version string for the given primitive, {@code "*"} if it is {@linkplain HistoryBrowserModel#isLatest is latest}.
+     * @param primitive the history primitive
+     * @return a version string for the given primitive
+     */
+    public String getVersionString(HistoryOsmPrimitive primitive) {
+        return model.isLatest(primitive) ? "*" : "v" + primitive.getVersion();
     }
 
Index: /trunk/test/unit/org/openstreetmap/josm/io/OsmServerHistoryReaderTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/io/OsmServerHistoryReaderTest.java	(revision 17902)
+++ /trunk/test/unit/org/openstreetmap/josm/io/OsmServerHistoryReaderTest.java	(revision 17903)
@@ -68,10 +68,9 @@
         assertEquals(26368284, h.getLatest().getChangesetId());
         assertEquals(Instant.ofEpochMilli(1414429134000L), h.getLatest().getInstant());
-        System.out.println(h.getByVersion(14).keySet());
-        assertEquals(11, h.getWhichChangedTag(14, "bicycle").getVersion());
-        assertEquals(1, h.getWhichChangedTag(10, "bicycle").getVersion());
-        assertEquals(5, h.getWhichChangedTag(14, "created_by").getVersion());
-        assertEquals(2, h.getWhichChangedTag(4, "created_by").getVersion());
-        assertEquals(1, h.getWhichChangedTag(1, "highway").getVersion());
+        assertEquals(11, h.getWhichChangedTag(h.getByVersion(14), "bicycle", false).getVersion());
+        assertEquals(1, h.getWhichChangedTag(h.getByVersion(10), "bicycle", false).getVersion());
+        assertEquals(5, h.getWhichChangedTag(h.getByVersion(14), "created_by", false).getVersion());
+        assertEquals(2, h.getWhichChangedTag(h.getByVersion(4), "created_by", false).getVersion());
+        assertEquals(1, h.getWhichChangedTag(h.getByVersion(1), "highway", false).getVersion());
     }
 
