diff --git a/b_asic/operation.py b/b_asic/operation.py
index f26ff2859a1aa799498d1d7f96805bff13e86b53..11cd476b99afd9c832b0c286bf6693e222763567 100644
--- a/b_asic/operation.py
+++ b/b_asic/operation.py
@@ -735,7 +735,7 @@ class AbstractOperation(Operation, AbstractGraphComponent):
 
         try:
             result = self.evaluate(*([Input()] * self.input_count))
-            if isinstance(result, collections.Sequence) and all(
+            if isinstance(result, collections.abc.Sequence) and all(
                 isinstance(e, Operation) for e in result
             ):
                 return result
diff --git a/test/test_operation.py b/test/test_operation.py
index a92f07ce45129cf2f225705c6a260aa21c43f736..fa120571f5f5cce2a1dbd8e3b64143d4adadd92b 100644
--- a/test/test_operation.py
+++ b/test/test_operation.py
@@ -310,3 +310,12 @@ class TestIOCoordinates:
         i_c, o_c = bfly.get_io_coordinates()
         assert i_c == [[2, 0.25], [3, 0.75]]
         assert o_c == [[5, 0.25], [10, 0.75]]
+
+
+class TestSplit:
+    def test_simple_case(self):
+        bfly = Butterfly()
+        split = bfly.split()
+        assert len(split) == 2
+        assert sum(isinstance(op, Addition) for op in split) == 1
+        assert sum(isinstance(op, Subtraction) for op in split) == 1