diff --git a/src/pairs/code_gen/interface.py b/src/pairs/code_gen/interface.py
index bbc1699f5df5917bedc0c1934170b1f41e2775d1..872914962de053931e4c9cd0afdc88e804ed000a 100644
--- a/src/pairs/code_gen/interface.py
+++ b/src/pairs/code_gen/interface.py
@@ -123,9 +123,11 @@ class InterfaceModules:
 
         reneighboring_procedures = [
             Exchange(self.sim._comm),
-            Borders(self.sim._comm),
-            # Note: DomainUpdateLocal must happen after exchange since local particles must be contained in AABBs
+            # Note: DomainUpdateLocal must happen after exchange since local particles must be contained in AABBs.
+            #       And it must happen before Borders since newly received particles need to be included, so they become ghosts
+            #       for their previous neighbor
             DomainUpdateLocal(self.sim),    
+            Borders(self.sim._comm),
             BuildCellListsStencil(self.sim, self.sim.cell_lists),
             self.sim.update_cells_procedures,
             ResetVolatileProperties(self.sim)