diff --git a/loopy/transform/batch.py b/loopy/transform/batch.py
index 88e3898e2cceeeb62edea306283fcb718c3b088d..ea575dd48fde265fff78c552644767a8baab295b 100644
--- a/loopy/transform/batch.py
+++ b/loopy/transform/batch.py
@@ -63,7 +63,7 @@ class _BatchVariableChanger(RuleAwareIdentityMapper):
         if not self.needs_batch_subscript(expr.aggregate.name):
             return super(_BatchVariableChanger, self).map_subscript(expr, expn_state)
 
-        idx = expr.index
+        idx = self.rec(expr.index, expn_state)
         if not isinstance(idx, tuple):
             idx = (idx,)