Index: trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 8964)
+++ trunk/src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 8965)
@@ -567,4 +567,5 @@
             newSelection.add(way);
         }
+        final int indexOfWayToKeep = newWays.indexOf(wayToKeep);
         newWays.remove(wayToKeep);
 
@@ -677,8 +678,19 @@
 
                         int j = i_c;
-                        for (Way wayToAdd : newWays) {
+                        final List<Way> waysToAddBefore = newWays.subList(0, indexOfWayToKeep);
+                        for (Way wayToAdd : waysToAddBefore) {
                             RelationMember em = new RelationMember(rm.getRole(), wayToAdd);
                             j++;
-                            if ((backwards != null) && backwards) {
+                            if (Boolean.TRUE.equals(backwards)) {
+                                c.addMember(i_c + 1, em);
+                            } else {
+                                c.addMember(j - 1, em);
+                            }
+                        }
+                        final List<Way> waysToAddAfter = newWays.subList(indexOfWayToKeep, newWays.size());
+                        for (Way wayToAdd : waysToAddAfter) {
+                            RelationMember em = new RelationMember(rm.getRole(), wayToAdd);
+                            j++;
+                            if (Boolean.TRUE.equals(backwards)) {
                                 c.addMember(i_c, em);
                             } else {
