diff --git a/pyopencl/scan.py b/pyopencl/scan.py
index 414cbd5d5619b8d24b0074e6016f39ef33fd5664..66a46c0a2b3addc12aa9708dccbc9e9e396fd741 100644
--- a/pyopencl/scan.py
+++ b/pyopencl/scan.py
@@ -1152,17 +1152,19 @@ class GenericScanKernel(_GenericScanKernelBase):
 
         from_cache = False
 
-        try:
-            result = generic_scan_kernel_cache[cache_key]
-            from_cache = True
-            logger.debug(
+        import os
+        if not os.environ.get("PYOPENCL_NO_CACHE"):
+            try:
+                result = generic_scan_kernel_cache[cache_key]
+                from_cache = True
+                logger.debug(
                     "cache hit for generated scan kernel '%s'" % self.name_prefix)
-            (
-                self.first_level_scan_gen_info,
-                self.second_level_scan_gen_info,
-                self.final_update_gen_info) = result
-        except KeyError:
-            pass
+                (
+                    self.first_level_scan_gen_info,
+                    self.second_level_scan_gen_info,
+                    self.final_update_gen_info) = result
+            except KeyError:
+                pass
 
         if not from_cache:
             logger.debug(