Index: src/org/openstreetmap/josm/actions/SplitWayAction.java
===================================================================
--- src/org/openstreetmap/josm/actions/SplitWayAction.java	(revision 17362)
+++ src/org/openstreetmap/josm/actions/SplitWayAction.java	(working copy)
@@ -142,7 +142,7 @@
             sel.addAll(selectedWays);
 
             final List<Way> newWays = SplitWayCommand.createNewWaysFromChunks(selectedWay, wayChunks);
-            final Way wayToKeep = SplitWayCommand.Strategy.keepLongestChunk().determineWayToKeep(newWays);
+            final Way wayToKeep = SplitWayCommand.smallestChangeset(selectedWay, newWays);
 
             if (ExpertToggleAction.isExpert() && !selectedWay.isNew()) {
                 final ExtendedDialog dialog = new SegmentToKeepSelectionDialog(selectedWay, newWays, wayToKeep, sel);
Index: src/org/openstreetmap/josm/command/SplitWayCommand.java
===================================================================
--- src/org/openstreetmap/josm/command/SplitWayCommand.java	(revision 17362)
+++ src/org/openstreetmap/josm/command/SplitWayCommand.java	(working copy)
@@ -427,6 +427,29 @@
         }
     }
 
+    /**
+     * Calculate the best way
+     * @param way the way to split
+     * @param newWays potential new ways
+     * @return the way to keep to reduce the number of changed relations
+     * @since xxx
+     */
+    public static Way smallestChangeset(Way way, List<Way> newWays) {
+        if (way.isNew())
+            return Strategy.keepLongestChunk().determineWayToKeep(newWays);
+        int bestCount = Integer.MAX_VALUE;
+        Way wayToKeep = newWays.iterator().next();
+        for (Way w : newWays) {
+            Analysis res = analyseSplit(way, w, newWays);
+            if (res.numberOfRelations < bestCount) {
+                bestCount = res.numberOfRelations;
+                wayToKeep = w;
+            }
+            res.cleanup();
+        }
+        return wayToKeep;
+    }
+
     static Analysis analyseSplit(Way way,
                                  Way wayToKeep,
                                  List<Way> newWays) {
