Index: trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 8701)
+++ trunk/src/org/openstreetmap/josm/gui/history/NodeListViewer.java	(revision 8702)
@@ -100,4 +100,6 @@
                         reversed = model.isReversed();
                         columnModel.getColumn(0).setHeaderValue(reversed ? reversedText : nonReversedText);
+                        table.getTableHeader().setToolTipText(
+                                reversed ? tr("The nodes of this way are in reverse order") : null);
                         table.getTableHeader().repaint();
                     }
Index: trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java	(revision 8701)
+++ trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java	(revision 8702)
@@ -35,4 +35,5 @@
             DELETED(new Color(255, 197, 197)),
             CHANGED(new Color(255, 234, 213)),
+            REVERSED(new Color(255, 255, 204)),
             SAME(new Color(234, 234, 234)),
             EMPTY(new Color(234, 234, 234));
@@ -80,8 +81,8 @@
                 || script != null && scriptReversed.deleted + scriptReversed.inserted < script.deleted + script.inserted) {
             this.referenceReversed = true;
-            twoColumnDiffFromScript(scriptReversed, referenceReversed, current);
+            twoColumnDiffFromScript(scriptReversed, referenceReversed, current, true);
         } else {
             this.referenceReversed = false;
-            twoColumnDiffFromScript(script, reference, current);
+            twoColumnDiffFromScript(script, reference, current, false);
         }
     }
@@ -91,5 +92,5 @@
      * This method expands this script into a full two column description.
      */
-    private void twoColumnDiffFromScript(Diff.Change script, Object[] a, Object[] b) {
+    private void twoColumnDiffFromScript(Diff.Change script, Object[] a, Object[] b, final boolean reversed) {
         int ia = 0;
         int ib = 0;
@@ -99,9 +100,6 @@
             int inserted = script.inserted;
             while (ia < script.line0 && ib < script.line1) {
-                Item cell = new Item(DiffItemType.SAME, a[ia]);
-                referenceDiff.add(cell);
-                currentDiff.add(cell);
-                ia++;
-                ib++;
+                referenceDiff.add(new Item(reversed ? DiffItemType.REVERSED : DiffItemType.SAME, a[ia++]));
+                currentDiff.add(new Item(DiffItemType.SAME, b[ib++]));
             }
 
@@ -123,5 +121,5 @@
         }
         while (ia < a.length && ib < b.length) {
-            referenceDiff.add(new Item(DiffItemType.SAME, a[ia++]));
+            referenceDiff.add(new Item(reversed ? DiffItemType.REVERSED : DiffItemType.SAME, a[ia++]));
             currentDiff.add(new Item(DiffItemType.SAME, b[ib++]));
         }
