diff --git a/pyopencl/tools.py b/pyopencl/tools.py
index d7e56dc9fc05c7365855ecb0b99daaf998a4289c..262da225f0a42ed4e79b9c9213267e80e7c46ec0 100644
--- a/pyopencl/tools.py
+++ b/pyopencl/tools.py
@@ -84,7 +84,7 @@ def first_arg_dependent_memoize(func):
         .. versionadded:: 2011.2
         """
         if kwargs:
-            cache_key = (args, kwargs)
+            cache_key = (args, frozenset(kwargs.items()))
         else:
             cache_key = args
         try: