diff --git a/pyopencl/array.py b/pyopencl/array.py
index adbb7aad538ba3e6a19920cffeee741e2a7d614a..416a41f3e6dbe3c2b645ae1873ea2bb6a658390d 100644
--- a/pyopencl/array.py
+++ b/pyopencl/array.py
@@ -646,6 +646,11 @@ class Array(object):
 
         result = self._new_like_me(queue=queue)
 
+        # result.queue won't be the same as queue if queue is None.
+        # We force them to be the same here.
+        if result.queue is not queue:
+            result = result.with_queue(queue)
+
         if self.nbytes:
             cl.enqueue_copy(queue or self.queue,
                     result.base_data, self.base_data,