diff --git a/grudge/eager.py b/grudge/eager.py
index 3bacbc2b28ef59a00fabdd2e257e3a8153a07698..92378f993df51d0fca3fc8170308595e15cd3d18 100644
--- a/grudge/eager.py
+++ b/grudge/eager.py
@@ -83,6 +83,9 @@ class EagerDGDiscretization(DGDiscretizationWithBoundaries):
         :arg tgt: a :class:`~grudge.sym.DOFDesc`, or a value convertible to one
         :arg vec: a :class:`~meshmode.dof_array.DOFArray`
         """
+        if src == tgt:
+            return vec
+
         if isinstance(vec, np.ndarray):
             return obj_array_vectorize(
                     lambda el: self.project(src, tgt, el), vec)