diff --git a/loopy/transform/subst.py b/loopy/transform/subst.py
index 6db5d396f4cf5a039c7eaeedba4641e68707486b..7623fb8911e2a50b08309c0c6cb45a0dd372bfbb 100644
--- a/loopy/transform/subst.py
+++ b/loopy/transform/subst.py
@@ -368,6 +368,10 @@ def assignment_to_subst(kernel, lhs_name, extra_arguments=(), within=None,
 
     # }}}
 
+    if not definition_insn_ids:
+        raise LoopyError("no assignments to variable '%s' found"
+                % lhs_name)
+
     from loopy.context_matching import parse_stack_match
     within = parse_stack_match(within)