diff --git a/src/runner.c b/src/runner.c
index 7e9886873e4dcba22d0214635e43ec4bb775e38c..d7edfe615a0b8b8958a32000123fd5f7040433f0 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -1405,6 +1405,9 @@ void runner_do_recv_part(struct runner *r, struct cell *c, int timer) {
   timebin_t time_bin_min = num_time_bins;
   timebin_t time_bin_max = 0;
   float h_max = 0.f;
+  
+  /* Clear this cell's sorted mask. */
+  c->sorted = 0;
 
   /* If this cell is a leaf, collect the particle data. */
   if (!c->split) {
diff --git a/src/runner_doiact.h b/src/runner_doiact.h
index d41470f68d9a1050edd44c0dd46ba077c5dfa327..bf8b1d6bdf578f4293080eebaa67a31eea20a531 100644
--- a/src/runner_doiact.h
+++ b/src/runner_doiact.h
@@ -865,13 +865,6 @@ void DOPAIR1(struct runner *r, struct cell *ci, struct cell *cj) {
 
   const struct engine *restrict e = r->e;
 
-#ifdef WITH_MPI
-  if (ci->nodeID != cj->nodeID) {
-    DOPAIR1_NOSORT(r, ci, cj);
-    return;
-  }
-#endif
-
 #ifdef WITH_OLD_VECTORIZATION
   int icount = 0;
   float r2q[VEC_SIZE] __attribute__((aligned(16)));