diff --git a/src/hydro/Gizmo/hydro.h b/src/hydro/Gizmo/hydro.h
index 99cbfc206a603fda23478f247dd20ba1790df3a7..3b22d46da956dedccc307a5ce1e32235870bccaa 100644
--- a/src/hydro/Gizmo/hydro.h
+++ b/src/hydro/Gizmo/hydro.h
@@ -537,19 +537,24 @@ __attribute__((always_inline)) INLINE static void hydro_predict_extra(
   }
 
   /* drift the primitive variables based on the old fluxes */
-  p->primitives.rho += p->conserved.flux.mass * dt / p->geometry.volume;
+  if (p->geometry.volume > 0.) {
+    p->primitives.rho += p->conserved.flux.mass * dt / p->geometry.volume;
+  }
 
-  p->primitives.v[0] += p->conserved.flux.momentum[0] * dt / p->conserved.mass;
-  p->primitives.v[1] += p->conserved.flux.momentum[1] * dt / p->conserved.mass;
-  p->primitives.v[2] += p->conserved.flux.momentum[2] * dt / p->conserved.mass;
+  if (p->conserved.mass > 0.) {
+    p->primitives.v[0] +=
+        p->conserved.flux.momentum[0] * dt / p->conserved.mass;
+    p->primitives.v[1] +=
+        p->conserved.flux.momentum[1] * dt / p->conserved.mass;
+    p->primitives.v[2] +=
+        p->conserved.flux.momentum[2] * dt / p->conserved.mass;
 
 #if !defined(EOS_ISOTHERMAL_GAS)
-  if (p->conserved.mass > 0.) {
     const float u = p->conserved.energy + p->conserved.flux.energy * dt;
     p->primitives.P =
         hydro_gamma_minus_one * u * p->primitives.rho / p->conserved.mass;
-  }
 #endif
+  }
 
 #ifdef SWIFT_DEBUG_CHECKS
   if (p->h <= 0.) {