diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py
index cf07f969bdb8d7432815055004357f54f567dbf1..39a40728b58fc8cd592d5f8cc733b590785ebca5 100644
--- a/loopy/kernel/creation.py
+++ b/loopy/kernel/creation.py
@@ -426,6 +426,12 @@ def guess_kernel_args_if_requested(domains, instructions, temporary_variables,
             all_names.update(get_dependencies(submap(insn.assignee, insn.id)))
             all_names.update(get_dependencies(submap(insn.expression, insn.id)))
 
+    from loopy.kernel.data import ArrayBase
+    for arg in kernel_args:
+        if isinstance(arg, ArrayBase):
+            if isinstance(arg.shape, tuple):
+                all_names.update(get_dependencies(arg.shape))
+
     all_params = set()
     for dom in domains:
         all_params.update(dom.get_var_names(dim_type.param))