diff --git a/loopy/kernel/tools.py b/loopy/kernel/tools.py
index 8b486ed611ea3cab23ef062c4386d0d1748aca4e..e33d260fba4f3f4122f35e033ecc573b41999d5d 100644
--- a/loopy/kernel/tools.py
+++ b/loopy/kernel/tools.py
@@ -1598,9 +1598,10 @@ def get_global_barrier_order(kernel):
 
     See also :class:`loopy.instruction.BarrierInstruction`.
     """
-    dep_graph = {
-            insn.id: insn.depends_on
-            for insn in kernel.instructions}
+    dep_graph = {insn.id: set() for insn in kernel.instructions}
+    for insn in kernel.instructions:
+        for dep in insn.depends_on:
+            dep_graph[dep].add(insn.id)
 
     from pytools.graph import compute_topological_order
     order = compute_topological_order(dep_graph)