diff --git a/loopy/transform/buffer.py b/loopy/transform/buffer.py
index dd343a81ab9e86c9fa822f519aa9becb3f7c8baf..677de78eaa2944956e2d65209dc5716af5bb091a 100644
--- a/loopy/transform/buffer.py
+++ b/loopy/transform/buffer.py
@@ -457,13 +457,13 @@ def buffer_array(kernel, var_name, buffer_inames, init_expression=None,
     from loopy import tag_inames
     kernel = tag_inames(kernel, new_iname_to_tag)
 
+    from loopy.kernel.tools import assign_automatic_axes
+    kernel = assign_automatic_axes(kernel)
+
     if CACHING_ENABLED:
         from loopy.preprocess import prepare_for_caching
         buffer_array_cache[cache_key] = prepare_for_caching(kernel)
 
-    from loopy.kernel.tools import assign_automatic_axes
-    kernel = assign_automatic_axes(kernel)
-
     return kernel
 
 # vim: foldmethod=marker