Index: trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 11388)
+++ trunk/src/org/openstreetmap/josm/actions/CombineWayAction.java	(revision 11389)
@@ -150,5 +150,5 @@
                 Collections.reverse(path);
                 List<Way> tempWays = unreversedWays;
-                unreversedWays = reversedWays;
+                unreversedWays = null;
                 reversedWays = tempWays;
             }
Index: trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 11388)
+++ trunk/src/org/openstreetmap/josm/actions/OrthogonalizeAction.java	(revision 11389)
@@ -46,4 +46,6 @@
             "(Afterwards, you can undo the movement for certain nodes:<br>"+
             "Select them and press the shortcut for Orthogonalize / Undo. The default is Shift-Q.)");
+
+    private static final double EPSILON = 1E-6;
 
     /**
@@ -415,8 +417,7 @@
             final double dy = tmp.north() - n.getEastNorth().north();
             if (headingNodes.contains(n)) { // The heading nodes should not have changed
-                final double epsilon = 1E-6;
-                if (Math.abs(dx) > Math.abs(epsilon * tmp.east()) ||
-                        Math.abs(dy) > Math.abs(epsilon * tmp.east()))
-                    throw new AssertionError();
+                if (Math.abs(dx) > Math.abs(EPSILON * tmp.east()) ||
+                    Math.abs(dy) > Math.abs(EPSILON * tmp.east()))
+                    throw new AssertionError("heading node has changed");
             } else {
                 OrthogonalizeAction.rememberMovements.put(n, new EastNorth(dx, dy));
Index: trunk/src/org/openstreetmap/josm/tools/Diff.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Diff.java	(revision 11388)
+++ trunk/src/org/openstreetmap/josm/tools/Diff.java	(revision 11389)
@@ -812,5 +812,5 @@
                     if (end != iEnd && equivs[start] == equivs[end] && !otherChanged[1+j]
                          && !((preceding >= 0 && start == preceding) || (otherPreceding >= 0 && otherStart == otherPreceding))) {
-                        changed[1+end++] = true;
+                        changed[1+end] = true;
                         changed[1+start++] = false;
                         ++i;
