diff --git a/loopy/schedule/__init__.py b/loopy/schedule/__init__.py
index 4281e50bd006a3cddf5a3cae0ffffe3d78abcfac..d19cd61fb5e6724a4e71a4c9d2b4d3c1546a0f82 100644
--- a/loopy/schedule/__init__.py
+++ b/loopy/schedule/__init__.py
@@ -1756,7 +1756,7 @@ def insert_barriers(kernel, schedule, kind, verify_only, level=0):
 
 def generate_loop_schedules(kernel, debug_args={}):
     from pytools import MinRecursionLimit
-    with MinRecursionLimit(len(kernel.instructions) * 2):
+    with MinRecursionLimit(max(len(kernel.instructions) * 2, len(kernel.all_inames()) * 4)):
         for sched in generate_loop_schedules_inner(kernel, debug_args=debug_args):
             yield sched