diff --git a/src/engine.c b/src/engine.c
index c76bdbd48fc3c65300da868f596c099803437892..3d33d7400e6f1529f43d9c654f8b947cafb9ee48 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -2082,8 +2082,6 @@ void engine_init_particles(struct engine *e) {
 
   if (e->nodeID == 0) message("Initialising particles");
 
-  engine_prepare(e);
-
   /* Make sure all particles are ready to go */
   /* i.e. clean-up any stupid state in the ICs */
   if (e->policy & engine_policy_hydro) {
@@ -2094,6 +2092,8 @@ void engine_init_particles(struct engine *e) {
     space_map_cells_pre(s, 0, cell_init_gparts, NULL);
   }
 
+  engine_prepare(e);
+
   engine_marktasks(e);
 
   /* Build the masks corresponding to the policy */