hmmm sets
diff --git a/src/buildstream/_pipeline.py b/src/buildstream/_pipeline.py
index aee0c55..7c480ab 100644
--- a/src/buildstream/_pipeline.py
+++ b/src/buildstream/_pipeline.py
@@ -186,7 +186,8 @@
     def dependencies(self, targets, scope, *, recurse=True):
         # Keep track of 'visited' in this scope, so that all targets
         # share the same context.
-        visited = (BitMap(), BitMap())
+        # visited = (BitMap(), BitMap())
+        visited = set(), set()
 
         for target in targets:
             for element in target.dependencies(scope, recurse=recurse, visited=visited):
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index ee6b90c..6f484e6 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -499,7 +499,8 @@
 
             if visited is None:
                 # Visited is of the form (Visited for Scope.BUILD, Visited for Scope.RUN)
-                visited = (BitMap(), BitMap())
+                # visited = (BitMap(), BitMap())
+                visited = set(), set()
             else:
                 # We have already a visited set passed. we might be able to short-circuit
                 if scope in (Scope.BUILD, Scope.ALL) and self._unique_id in visited[0]: