diff --git a/arraycontext/context.py b/arraycontext/context.py
index 0c9232d8c40de87500ef19a55004ae5b06cce6cc..2bff0ac2153a51bb6ea26b73d7ea3429e9573ae3 100644
--- a/arraycontext/context.py
+++ b/arraycontext/context.py
@@ -328,9 +328,10 @@ class ArrayContext(ABC):
             arg_names = tuple("arg%d" % i for i in range(len(args)))
 
         prg = self._get_einsum_prg(spec, arg_names, tagged)
-        return self.call_loopy(
+        out_ary = self.call_loopy(
             prg, **{arg_names[i]: arg for i, arg in enumerate(args)}
         )["out"]
+        return self.tag(tagged, out_ary)
 
     @abstractmethod
     def clone(self):