diff --git a/src/hydro/Gizmo/hydro.h b/src/hydro/Gizmo/hydro.h
index c59af05460157a756c15d8ca84af8a7834fde2d3..8da949feb2fb59ccf34b091bea4ecc65ea98614e 100644
--- a/src/hydro/Gizmo/hydro.h
+++ b/src/hydro/Gizmo/hydro.h
@@ -178,10 +178,10 @@ __attribute__((always_inline)) INLINE static void hydro_end_density(
  * @param timeBase Conversion factor between integer time and physical time.
  */
 __attribute__((always_inline)) INLINE static void hydro_prepare_force(
-    struct part* restrict p, struct xpart* restrict xp) {
+    struct part* restrict p, struct xpart* restrict xp, double timeBase) {
 
   /* Set the physical time step */
-  p->force.dt = get_timestep(p->time_bin, 0.);  // MATTHIEU 0
+  p->force.dt = get_timestep(p->time_bin, timeBase);  // MATTHIEU 0
 
   /* Initialize time step criterion variables */
   p->timestepvars.vmax = 0.0f;
@@ -375,7 +375,7 @@ __attribute__((always_inline)) INLINE static void hydro_end_force(
  * @param half_dt Half the physical time step.
  */
 __attribute__((always_inline)) INLINE static void hydro_kick_extra(
-    struct part* p, struct xpart* xp, float dt) {
+    struct part* p, struct xpart* xp, float dt, integertime_t ti_current) {
 
   float oldm, oldp[3], anew[3];
   const float half_dt = 0.5f * dt;  // MATTHIEU
@@ -429,9 +429,9 @@ __attribute__((always_inline)) INLINE static void hydro_kick_extra(
 
     /* Store gravitational acceleration and mass flux for next step */
     p->gravity.old_a[0] = anew[0];
-    p->gravity.old_a[1] = anew[1];
     p->gravity.old_a[2] = anew[2];
     p->gravity.old_mflux[0] = p->gravity.mflux[0];
+    p->gravity.old_a[1] = anew[1];
     p->gravity.old_mflux[1] = p->gravity.mflux[1];
     p->gravity.old_mflux[2] = p->gravity.mflux[2];
   }
@@ -444,6 +444,8 @@ __attribute__((always_inline)) INLINE static void hydro_kick_extra(
   p->conserved.flux.momentum[1] = 0.0f;
   p->conserved.flux.momentum[2] = 0.0f;
   p->conserved.flux.energy = 0.0f;
+
+  p->force.ti_end = get_integer_time_end(ti_current, p->time_bin);
 }
 
 /**
diff --git a/src/hydro/Gizmo/hydro_iact.h b/src/hydro/Gizmo/hydro_iact.h
index aba6bd53c1c9557929426c11a0986e5f02888874..a0d8ee4c0b4c7155efed3842a7d79f93e8f5fabe 100644
--- a/src/hydro/Gizmo/hydro_iact.h
+++ b/src/hydro/Gizmo/hydro_iact.h
@@ -413,8 +413,10 @@ __attribute__((always_inline)) INLINE static void runner_iact_fluxes_common(
   */
 
   // MATTHIEU
-  const integertime_t pj_ti_end = 0;  // get_integer_time_end(pj->time_bin);
-  const integertime_t pi_ti_end = 0;  // get_integer_time_end(pi->time_bin);
+  //  const integertime_t pj_ti_end = 0;  // get_integer_time_end(pj->time_bin);
+  //  const integertime_t pi_ti_end = 0;  // get_integer_time_end(pi->time_bin);
+  integertime_t pi_ti_end = pi->force.ti_end;
+  integertime_t pj_ti_end = pj->force.ti_end;
 
   if (mode == 1 || pj_ti_end > pi_ti_end) {
     /* Store mass flux */
diff --git a/src/hydro/Gizmo/hydro_part.h b/src/hydro/Gizmo/hydro_part.h
index f6592ca107d8d2c6970f34ebd3929e226b53a355..88b4daef6ffb049b562668c0fc3fd881e958d0f0 100644
--- a/src/hydro/Gizmo/hydro_part.h
+++ b/src/hydro/Gizmo/hydro_part.h
@@ -178,6 +178,9 @@ struct part {
     /* Physical time step of the particle. */
     float dt;
 
+    /* Integer end time of the particle's time step. */
+    integertime_t ti_end;
+
     /* Actual velocity of the particle. */
     float v_full[3];
 
diff --git a/src/kick.h b/src/kick.h
index 7ccea7d26974297cfebc605808c4443633140ec1..1c6f5fb68eebbf12b2b1e68518e5b0e1b2e21b40 100644
--- a/src/kick.h
+++ b/src/kick.h
@@ -107,7 +107,7 @@ __attribute__((always_inline)) INLINE static void kick_part(
   }
 
   /* Extra kick work */
-  hydro_kick_extra(p, xp, dt);
+  hydro_kick_extra(p, xp, dt, ti_end);
   if (p->gpart != NULL) gravity_kick_extra(p->gpart, dt);
 }
 
diff --git a/src/runner.c b/src/runner.c
index e8fe6723bf242ff604d4f5d1413f610e1a313682..ad078f204eaaa00b3c81ac12dda1fbbe3d77cd8d 100644
--- a/src/runner.c
+++ b/src/runner.c
@@ -599,6 +599,8 @@ void runner_do_ghost(struct runner *r, struct cell *c, int timer) {
       target_wcount - e->hydro_properties->delta_neighbours;
   const int max_smoothing_iter = e->hydro_properties->max_smoothing_iterations;
   int redo = 0, count = 0;
+  const double timeBase = e->timeBase;
+  integertime_t ti_current = e->ti_current;
 
   TIMER_TIC;
 
@@ -679,7 +681,7 @@ void runner_do_ghost(struct runner *r, struct cell *c, int timer) {
         /* As of here, particle force variables will be set. */
 
         /* Compute variables required for the force loop */
-        hydro_prepare_force(p, xp);
+        hydro_prepare_force(p, xp, ti_current, timeBase);
 
         /* The particle force values are now set.  Do _NOT_
            try to read any particle density variables! */