diff --git a/loopy/transform/subst.py b/loopy/transform/subst.py
index 63e70f8e386bfc6ecdddb4b8661e9f975206725e..24fc0d40a7d30085ea14bf8f5440a46f80100db6 100644
--- a/loopy/transform/subst.py
+++ b/loopy/transform/subst.py
@@ -460,6 +460,9 @@ def assignment_to_subst(kernel, lhs_name, extra_arguments=(), within=None,
 # {{{ expand_subst
 
 def expand_subst(kernel, within=None):
+    if not kernel.substitutions:
+        return kernel
+
     logger.debug("%s: expand subst" % kernel.name)
 
     from loopy.symbolic import RuleAwareSubstitutionRuleExpander