diff --git a/meshmode/discretization/connection/projection.py b/meshmode/discretization/connection/projection.py
index 5d274a968d73cf773238a881e42e4c36eab9ac21..fae3f9b7435b526cd7342090bd31012885945ff9 100644
--- a/meshmode/discretization/connection/projection.py
+++ b/meshmode/discretization/connection/projection.py
@@ -54,6 +54,9 @@ class L2ProjectionInverseDiscretizationConnection(DiscretizationConnection):
         if isinstance(connections, DirectDiscretizationConnection):
             return DiscretizationConnection.__new__(cls)
         elif isinstance(connections, ChainedDiscretizationConnection):
+            if len(connections.connections) == 0:
+                return connections
+
             return cls(connections.connections, is_surjective=is_surjective)
         else:
             conns = []