diff --git a/loopy/kernel.py b/loopy/kernel.py
index c00c46d3c7c9c0c51621b4f05939c86ccbda28f4..d5ba8bde3006f329f04e95d09137a47b28d5308d 100644
--- a/loopy/kernel.py
+++ b/loopy/kernel.py
@@ -896,9 +896,11 @@ class LoopKernel(Record):
                     subst_name = lhs.function.name
                     arg_names = []
 
-                    for arg in lhs.parameters:
+                    for i, arg in enumerate(lhs.parameters):
                         if not isinstance(arg, Variable):
-                            raise RuntimeError("Invalid substitution rule left-hand side")
+                            raise RuntimeError("Invalid substitution rule "
+					    "left-hand side: %s--arg number %d "
+					    "is not a variable"% (lhs, i))
                         arg_names.append(arg.name)
                 else:
                     raise RuntimeError("Invalid substitution rule left-hand side")