diff --git a/pyopencl/clrandom.py b/pyopencl/clrandom.py
index 66d4ceb75b2296d8b67871fb8ed9a02bb0f4b1c0..194493bb19b28deb45d1c18e3a0dfc6c8bc179d7 100644
--- a/pyopencl/clrandom.py
+++ b/pyopencl/clrandom.py
@@ -49,12 +49,7 @@ class RanluxGenerator(object):
 
         # {{{ compute work group size
 
-        wg_size = prg.init_ranlux.get_work_group_info(
-                cl.kernel_work_group_info.WORK_GROUP_SIZE,
-                queue.device)
-
-        while num_work_items % wg_size != 0:
-            wg_size //= 2
+        wg_size = None
 
         import sys
         import platform
@@ -62,7 +57,7 @@ class RanluxGenerator(object):
                 and "Apple" in queue.device.platform.vendor
                 and platform.mac_ver()[0].startswith("10.7")
                 and queue.device.type == cl.device_type.CPU):
-            wg_size = 1
+            wg_size = (1,)
 
         self.wg_size = wg_size
 
@@ -71,7 +66,7 @@ class RanluxGenerator(object):
         self.state = cl_array.empty(queue, (num_work_items, 112), dtype=np.uint8)
         self.state.fill(17)
 
-        prg.init_ranlux(queue, (num_work_items,), None, np.uint32(seed),
+        prg.init_ranlux(queue, (num_work_items,), self.wg_size, np.uint32(seed),
                 self.state.data)
 
     def generate_settings_defines(self, include_double_pragma=True):
@@ -198,7 +193,7 @@ class RanluxGenerator(object):
             queue = ary.queue
 
         self.get_gen_kernel(ary.dtype, "norm")(queue,
-                (self.num_work_items,), None,
+                (self.num_work_items,), self.wg_size,
                 self.state.data, ary.data, ary.size, sigma, mu)
 
     def normal(self, *args, **kwargs):
@@ -232,7 +227,7 @@ class RanluxGenerator(object):
         return prg.sync
 
     def synchronize(self, queue):
-        self.get_sync_kernel()(queue, (self.num_work_items,), None, self.state.data)
+        self.get_sync_kernel()(queue, (self.num_work_items,), self.wg_size, self.state.data)