diff --git a/grudge/execution.py b/grudge/execution.py
index 3ba817e1261e0652516cac4cd1ff82e190d6a160..761b14729c330e5d1ebcdaf203dea1c437259a4f 100644
--- a/grudge/execution.py
+++ b/grudge/execution.py
@@ -285,17 +285,15 @@ class ExecutionMapper(mappers.Evaluator,
     # }}}
 
     def map_signed_face_ones(self, expr):
+        assert expr.dd.is_trace()
         face_discr = self.discrwb.discr_from_dd(expr.dd)
         assert face_discr.dim == 0
 
-        from meshmode.discretization.connection import \
-                ChainedDiscretizationConnection
-        all_faces_conn = self.discrwb.connection_from_dds("vol", expr.dd)
-        if isinstance(all_faces_conn, ChainedDiscretizationConnection):
-            # NOTE: this can happen if oversampling on a face. however, since
-            # the face_id stays the same, we can safely just look at the first
-            # connection
-            all_faces_conn = all_faces_conn.connections[0]
+        # NOTE: ignore quadrature_tags on expr.dd, since we only care about
+        # the face_id here
+        all_faces_conn = self.discrwb.connection_from_dds(
+                sym.DD_VOLUME,
+                sym.DOFDesc(expr.dd.domain_tag))
 
         field = face_discr.empty(self.queue,
                 dtype=self.discrwb.real_dtype,
diff --git a/test/test_grudge.py b/test/test_grudge.py
index 12b7b116e010006c957d34a210d3455e223c25c4..a55f92baffb7d7f5bfa293bb105579dfeeba08a5 100644
--- a/test/test_grudge.py
+++ b/test/test_grudge.py
@@ -90,7 +90,7 @@ def test_inverse_metric(ctx_factory, dim):
 
 @pytest.mark.parametrize("ambient_dim", [1, 2, 3])
 @pytest.mark.parametrize("quad_tag", [sym.QTAG_NONE, "OVSMP"])
-def test_1d_mass_mat_trig(ctx_factory, ambient_dim, quad_tag):
+def test_mass_mat_trig(ctx_factory, ambient_dim, quad_tag):
     """Check the integral of some trig functions on an interval using the mass
     matrix.
     """