diff --git a/src/engine.c b/src/engine.c
index e20c46f1fa20a0216dea3ec6b5e48d2d7b6baa46..c22b9491495c8576ae26c47672feba8503fb4303 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -3480,7 +3480,8 @@ void engine_unskip(struct engine *e) {
                  e->s->nr_cells, sizeof(struct cell), 1, e);
 
   /* And the top level gravity FFT one */
-  if (e->s->periodic) scheduler_activate(&e->sched, e->s->grav_top_level);
+  if (e->s->periodic && (e->policy & engine_policy_self_gravity))
+    scheduler_activate(&e->sched, e->s->grav_top_level);
 
   if (e->verbose)
     message("took %.3f %s.", clocks_from_ticks(getticks() - tic),