diff --git a/grudge/execution.py b/grudge/execution.py
index 177cd52e281445bc312330064355662aafeb8fd8..aa6ad2329d333f54788b217630beb462f5665273 100644
--- a/grudge/execution.py
+++ b/grudge/execution.py
@@ -286,7 +286,8 @@ class ExecutionMapper(mappers.Evaluator,
         local_mesh = None
         vol_discr = None
         group_factory = None
-        TAG_SEND_MESH = 1
+        cl_ctx = None
+        TAG_SEND_MESH = 1  # noqa
 
         from mpi4py import MPI
         comm = MPI.COMM_WORLD
@@ -370,6 +371,27 @@ class ExecutionMapper(mappers.Evaluator,
         for req in send_reqs:
             req.wait()
 
+        connections = []
+        for i_remote_part, data in remote_data.items():
+            if data is None:
+                # Local mesh is not connected to remote mesh
+                continue
+            remote_bdry_mesh = data['bdry_mesh']
+            from meshmode.discretization import Discretization
+            remote_bdry = Discretization(cl_ctx, remote_bdry_mesh, group_factory)
+            remote_adj_groups = data['adj']
+            remote_to_elem_faces = data['to_elem_faces']
+            remote_to_elem_indices = data['to_elem_indices']
+            # Connect local_mesh to remote_mesh
+            from meshmode.discretization.connection import make_partition_connection
+            connection = make_partition_connection(local_bdry_conns[i_remote_part],
+                                                   i_local_part,
+                                                   remote_bdry,
+                                                   remote_adj_groups,
+                                                   remote_to_elem_faces,
+                                                   remote_to_elem_indices)
+            connections.append(connection)
+
         return None
 
     def map_opposite_interior_face_swap(self, op, field_expr):