Index: SplitOnIntersectionsAction.java
===================================================================
--- SplitOnIntersectionsAction.java	(revision 34580)
+++ SplitOnIntersectionsAction.java	(working copy)
@@ -8,9 +8,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.swing.JOptionPane;
 
@@ -21,6 +23,7 @@
 import org.openstreetmap.josm.data.UndoRedoHandler;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -83,15 +86,35 @@
                 }
         }
 
+        boolean createOneSequence = true;
+        Set<Relation> allWayRefs = new HashSet<>();
         for (Way splitWay : splitWays.keySet()) {
+            List<Relation> wayRefs = OsmPrimitive.getFilteredList(splitWay.getReferrers(), Relation.class);
+            for (Relation rel : wayRefs) {
+                createOneSequence &= allWayRefs.add(rel);
+            }
+        }
+        if (!createOneSequence) {
+            new Notification(
+                    tr("Two or more affected ways are members of the same relation. Multiple actions are created for this split.")
+                    ).setIcon(JOptionPane.WARNING_MESSAGE).show();
+        }
+
+        for (Way splitWay : splitWays.keySet()) {
             List<List<Node>> wayChunks = SplitWayCommand.buildSplitChunks(splitWay, splitWays.get(splitWay));
             if (wayChunks != null) {
-                list.add(SplitWayCommand.splitWay(splitWay, wayChunks, new ArrayList<>(selectedWays)));
+                SplitWayCommand cmd = SplitWayCommand.splitWay(splitWay, wayChunks, new ArrayList<>(selectedWays));
+                if (!createOneSequence) {
+                    UndoRedoHandler.getInstance().add(cmd);
+                }
+                list.add(cmd);
             }
         }
 
         if (!list.isEmpty()) {
-            UndoRedoHandler.getInstance().add(list.size() == 1 ? list.get(0) : new SequenceCommand(TITLE, list));
+            if (createOneSequence) {
+                UndoRedoHandler.getInstance().add(list.size() == 1 ? list.get(0) : new SequenceCommand(TITLE, list));
+            }
             getLayerManager().getEditDataSet().clearSelection();
         }
     }
