diff --git a/pyopencl/clrandom.py b/pyopencl/clrandom.py
index a30ffaf9391e1955a419212d7468f25ad228ea50..795474b3d1cafbebe9a0a146b4b98c1a2aeb5afc 100644
--- a/pyopencl/clrandom.py
+++ b/pyopencl/clrandom.py
@@ -520,6 +520,7 @@ class Random123GeneratorBase(object):
                     "unsupported RNG distribution/data type combination '%s/%s'"
                     % rng_key)
 
+        kernel_name = "rng_gen_%s_%s" % (self.generator_name, distribution)
         src = """//CL//
             #include <%(header_name)s>
 
@@ -559,7 +560,7 @@ class Random123GeneratorBase(object):
 
             #define GET_RANDOM_NUM(gen) %(rng_expr)s
 
-            kernel void generate(
+            kernel void %(kernel_name)s(
                 int k1,
                 #if %(key_length)s > 2
                 int k2, int k3,
@@ -599,6 +600,7 @@ class Random123GeneratorBase(object):
                   output[idx+3] = tail_ran.w;
             }
             """ % {
+                "kernel_name": kernel_name,
                 "gen_name": self.generator_name,
                 "header_name": self.header_name,
                 "output_t": c_type,
@@ -608,7 +610,7 @@ class Random123GeneratorBase(object):
                 }
 
         prg = cl.Program(self.context, src).build()
-        knl = prg.generate
+        knl = getattr(prg, kernel_name)
         knl.set_scalar_arg_dtypes(
                 [np.int32] * (self.key_length - 1 + 4)
                 + [None, np.int64, arg_dtype, arg_dtype])