Index: trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java	(revision 8975)
+++ trunk/src/org/openstreetmap/josm/gui/history/TwoColumnDiff.java	(revision 8976)
@@ -79,5 +79,5 @@
         Diff.Change scriptReversed = new Diff(referenceReversed, current).diff_2(false);
         if (scriptReversed == null /* reference and current are identical */
-                || script != null && scriptReversed.deleted + scriptReversed.inserted < script.deleted + script.inserted) {
+                || script != null && scriptReversed.getTotalNumberOfChanges() < script.getTotalNumberOfChanges()) {
             this.referenceReversed = true;
             twoColumnDiffFromScript(scriptReversed, referenceReversed, current, true);
Index: trunk/src/org/openstreetmap/josm/tools/Diff.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Diff.java	(revision 8975)
+++ trunk/src/org/openstreetmap/josm/tools/Diff.java	(revision 8976)
@@ -570,4 +570,12 @@
         }
 
+        /**
+         * Returns the number of insertions and deletions of this change as well as
+         * (recursively) the changes linked via {@link #link}.
+         */
+        public int getTotalNumberOfChanges() {
+            return inserted + deleted + (link != null ? link.getTotalNumberOfChanges() : 0);
+        }
+
         @Override
         public String toString() {
