diff --git a/src/chemistry/EAGLE/chemistry_additions.h b/src/chemistry/EAGLE/chemistry_additions.h
index ccc2c467777eb60d960c81b06768c583312bf45e..20fc423d119efc0cd0ae779d7c9e640a987f1470 100644
--- a/src/chemistry/EAGLE/chemistry_additions.h
+++ b/src/chemistry/EAGLE/chemistry_additions.h
@@ -46,17 +46,17 @@ __attribute__((always_inline)) INLINE static void runner_iact_chemistry_fluxes(
    * is gaining it. */
   if (mass_flux > 0.f) {
     /* pi is loosing mass */
+    pi->chemistry_data.metal_mass_flux_total -=
+        mass_flux_integrated * pi->chemistry_data.metal_mass_fraction_total;
     for (int i = 0; i < chemistry_element_count; i++) {
-      pi->chemistry_data.metal_mass_flux_total -=
-          mass_flux_integrated * pi->chemistry_data.metal_mass_fraction_total;
       pi->chemistry_data.metal_mass_fluxes[i] -=
           mass_flux_integrated * pi->chemistry_data.metal_mass_fraction[i];
     }
   } else {
     /* pi is gaining mass: */
+    pi->chemistry_data.metal_mass_flux_total -=
+        mass_flux_integrated * pj->chemistry_data.metal_mass_fraction_total;
     for (int i = 0; i < chemistry_element_count; i++) {
-      pi->chemistry_data.metal_mass_flux_total -=
-          mass_flux_integrated * pj->chemistry_data.metal_mass_fraction_total;
       pi->chemistry_data.metal_mass_fluxes[i] -=
           mass_flux_integrated * pj->chemistry_data.metal_mass_fraction[i];
     }
@@ -66,17 +66,17 @@ __attribute__((always_inline)) INLINE static void runner_iact_chemistry_fluxes(
   if (mode == 1 || pj->flux.dt < 0.f) {
     if (mass_flux > 0.f) {
       /* pj is gaining mass */
+      pj->chemistry_data.metal_mass_flux_total +=
+          mass_flux_integrated * pi->chemistry_data.metal_mass_fraction_total;
       for (int i = 0; i < chemistry_element_count; i++) {
-        pj->chemistry_data.metal_mass_flux_total +=
-            mass_flux_integrated * pi->chemistry_data.metal_mass_fraction_total;
         pj->chemistry_data.metal_mass_fluxes[i] +=
             mass_flux_integrated * pi->chemistry_data.metal_mass_fraction[i];
       }
     } else {
       /* pj is losing mass */
+      pj->chemistry_data.metal_mass_flux_total +=
+          mass_flux_integrated * pj->chemistry_data.metal_mass_fraction_total;
       for (int i = 0; i < chemistry_element_count; i++) {
-        pj->chemistry_data.metal_mass_flux_total +=
-            mass_flux_integrated * pj->chemistry_data.metal_mass_fraction_total;
         pj->chemistry_data.metal_mass_fluxes[i] +=
             mass_flux_integrated * pj->chemistry_data.metal_mass_fraction[i];
       }