diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py
index 9c4de55cc59a541e44570edd133d225a5771ed97..b57cf3e6efb3e8097fdf2053d19f3de3358caec7 100644
--- a/loopy/kernel/creation.py
+++ b/loopy/kernel/creation.py
@@ -864,10 +864,9 @@ def guess_arg_shape_if_requested(kernel, default_order):
             if armap.access_range is None:
                 if armap.bad_subscripts:
                     raise RuntimeError("cannot determine access range for '%s': "
-                            "undetermined index in subscripts '%s'"
-                            % (arg.name, " | ".join(
-                                "(%s)" % (
-                                    ", ".join(str(i) for i in armap.bad_subscripts)))))
+                            "undetermined index in subscript(s) '%s'"
+                            % (arg.name, ", ".join(
+                                    str(i) for i in armap.bad_subscripts)))
 
                 # no subscripts found, let's call it a scalar
                 shape = ()
diff --git a/loopy/symbolic.py b/loopy/symbolic.py
index 8f0cd02e34f17f135bdebd5a119b276bca3ca1b7..be74e12bc5246470c2b6d6e4b1000eeb34fbb01f 100644
--- a/loopy/symbolic.py
+++ b/loopy/symbolic.py
@@ -1024,7 +1024,7 @@ class AccessRangeMapper(WalkMapper):
             subscript = (subscript,)
 
         if not get_dependencies(subscript) <= set(domain.get_var_dict()):
-            self.bad_subscripts.append(subscript)
+            self.bad_subscripts.append(expr)
             return
 
         access_range = get_access_range(domain, subscript, self.kernel.assumptions)