diff --git a/loopy/buffer.py b/loopy/buffer.py
index 1e6a137b551645a25145ddaaeb8eea40eea554af..fea87effcef266d9fbfb89363548a54d2d57455e 100644
--- a/loopy/buffer.py
+++ b/loopy/buffer.py
@@ -188,7 +188,9 @@ def buffer_array(kernel, var_name, buffer_inames, init_expression=None,
 
     from loopy import CACHING_ENABLED
 
-    cache_key = (kernel, var_name, tuple(buffer_inames),
+    from loopy.preprocess import prepare_for_caching
+    key_kernel = prepare_for_caching(kernel)
+    cache_key = (key_kernel, var_name, tuple(buffer_inames),
             PymbolicExpressionHashWrapper(init_expression),
             PymbolicExpressionHashWrapper(store_expression), within,
             default_tag, temporary_is_local, fetch_bounding_box)