diff --git a/pyopencl/array.py b/pyopencl/array.py
index fb80f2d706d1fa35c204cd58ce48b1d093788070..905d8583aaa9e1ed68e2910f7534411d6deeb6b8 100644
--- a/pyopencl/array.py
+++ b/pyopencl/array.py
@@ -636,7 +636,7 @@ class Array:
         else:
             events = self.events
 
-        return Array(None, shape, dtype, allocator=allocator,
+        return self.__class__(None, shape, dtype, allocator=allocator,
                 strides=strides, data=data, offset=offset,
                 events=events,
                 _fast=fast, _context=self.context, _queue=queue, _size=size)