diff --git a/pyopencl/array.py b/pyopencl/array.py
index 4ef896c5923af10c296fc69968da2c64db719dd2..d7525c845fa329a29975def7b0660a3f2163e9a4 100644
--- a/pyopencl/array.py
+++ b/pyopencl/array.py
@@ -1802,7 +1802,7 @@ def multi_put(arrays, dest_indices, dest_shape=None, out=None, queue=None):
                     queue.device))
 
         from pytools import flatten
-        knl(queue, gs, ls,
+        evt = knl(queue, gs, ls,
                 *(
                     list(flatten(
                         (o.base_data, o.offset)
@@ -1813,6 +1813,11 @@ def multi_put(arrays, dest_indices, dest_shape=None, out=None, queue=None):
                         for i in arrays[chunk_slice]))
                     + [dest_indices.size]))
 
+        # FIXME should wait on incoming events
+
+        for o in out[chunk_slice]:
+            o.events.append(evt)
+
     return out