diff --git a/loopy/kernel.py b/loopy/kernel.py
index d9fd7c274a5c4a0c715b2cdb435705d241573ad6..d135f8f6f44cc1bcfb76709ec7d7b906d578bd3b 100644
--- a/loopy/kernel.py
+++ b/loopy/kernel.py
@@ -921,9 +921,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")