diff --git a/src/cell.c b/src/cell.c
index c0f9368c043c19fd26f66b71533af767b0cc0cd2..a9c3cc9cb94c3a06ce92abc3cb7904100840f630 100644
--- a/src/cell.c
+++ b/src/cell.c
@@ -1402,7 +1402,7 @@ void cell_drift_particles(struct cell *c, const struct engine *e) {
 
   /* Reset the gravity acceleration tensors */
   if (cell_is_active(c, e) && e->policy & engine_policy_self_gravity)
-    gravity_field_tensor_init(c->multipole);
+    gravity_field_tensors_init(&c->multipole->pot);
 
   /* Are we not in a leaf ? */
   if (c->split) {
@@ -1474,7 +1474,7 @@ void cell_drift_particles(struct cell *c, const struct engine *e) {
 
       /* Get ready for a density calculation */
       if (part_is_active(p, e)) {
-        hydro_init_part(p);
+        hydro_init_part(p, &e->s->hs);
       }
     }
 
diff --git a/src/engine.c b/src/engine.c
index 4b15e2e646325c125621251926f9ddc4d53a11f6..d1e918c78b06860574d79fd050c5550e65858169 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -3094,7 +3094,7 @@ void engine_init_particles(struct engine *e, int flag_entropy_ICs) {
   if (e->verbose) engine_print_task_counts(e);
 
   /* Init the particle hydro data (by hand). */
-  for (size_t k = 0; k < s->nr_parts; k++) hydro_init_part(&s->parts[k]);
+  for (size_t k = 0; k < s->nr_parts; k++) hydro_init_part(&s->parts[k], &e->s->hs);
   for (size_t k = 0; k < s->nr_gparts; k++) gravity_init_gpart(&s->gparts[k]);
 
   /* Now, launch the calculation */
@@ -3143,7 +3143,7 @@ void engine_init_particles(struct engine *e, int flag_entropy_ICs) {
   engine_skip_drift(e);
 
   /* Init the particle hydro data (by hand). */
-  for (size_t k = 0; k < s->nr_parts; k++) hydro_init_part(&s->parts[k]);
+  for (size_t k = 0; k < s->nr_parts; k++) hydro_init_part(&s->parts[k], &e->s->hs);
   for (size_t k = 0; k < s->nr_gparts; k++) gravity_init_gpart(&s->gparts[k]);
 
   /* Print the number of active tasks ? */