diff --git a/src/common_io.c b/src/common_io.c
index 458fe8229321f9fbd40b1b2c5a5bc70ebfe3417f..b9d8d03bd56d853c462f325529acfc768c5cc9b2 100644
--- a/src/common_io.c
+++ b/src/common_io.c
@@ -2319,6 +2319,7 @@ void io_check_output_fields(const struct swift_params* params,
         num_fields += chemistry_write_sparticles(NULL, list + num_fields);
         num_fields += tracers_write_sparticles(NULL, list + num_fields,
                                                /*with_cosmology=*/1);
+        num_fields += star_formation_write_sparticles(NULL, list + num_fields);
         num_fields += fof_write_sparts(NULL, list + num_fields);
         num_fields += velociraptor_write_sparts(NULL, list + num_fields);
         break;
@@ -2438,6 +2439,7 @@ void io_write_output_field_parameter(const char* filename) {
         num_fields += chemistry_write_sparticles(NULL, list + num_fields);
         num_fields += tracers_write_sparticles(NULL, list + num_fields,
                                                /*with_cosmology=*/1);
+        num_fields += star_formation_write_sparticles(NULL, list + num_fields);
         num_fields += fof_write_sparts(NULL, list + num_fields);
         num_fields += velociraptor_write_sparts(NULL, list + num_fields);
         break;
diff --git a/src/parallel_io.c b/src/parallel_io.c
index e5567f3521f03e38d2c6854b419e8a2f795f111b..c682714a1ab65db9e39760161b9ec1a5417e15d5 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -1831,8 +1831,8 @@ void write_output_parallel(struct engine* e, const char* baseName,
               chemistry_write_sparticles(sparts_written, list + num_fields);
           num_fields += tracers_write_sparticles(
               sparts_written, list + num_fields, with_cosmology);
-          num_fields +=
-              star_formation_write_sparticles(sparts, list + num_fields);
+          num_fields += star_formation_write_sparticles(sparts_written,
+                                                        list + num_fields);
           if (with_fof) {
             num_fields += fof_write_sparts(sparts_written, list + num_fields);
           }
diff --git a/src/serial_io.c b/src/serial_io.c
index 0e66d22e5506131c3f9c0454e87d0a11dbf16caa..6fb4260111197b5fd86ccad82d353f8b78fa4220 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -1438,8 +1438,8 @@ void write_output_serial(struct engine* e, const char* baseName,
                   chemistry_write_sparticles(sparts_written, list + num_fields);
               num_fields += tracers_write_sparticles(
                   sparts_written, list + num_fields, with_cosmology);
-              num_fields +=
-                  star_formation_write_sparticles(sparts, list + num_fields);
+              num_fields += star_formation_write_sparticles(sparts_written,
+                                                            list + num_fields);
               if (with_fof) {
                 num_fields +=
                     fof_write_sparts(sparts_written, list + num_fields);
diff --git a/src/single_io.c b/src/single_io.c
index ce123fd8ae34f0ec346b95a07aeb771817d0343c..cf8873b62cb68424f9b8cc3114bac2b836fc4515 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -1226,8 +1226,8 @@ void write_output_single(struct engine* e, const char* baseName,
               chemistry_write_sparticles(sparts_written, list + num_fields);
           num_fields += tracers_write_sparticles(
               sparts_written, list + num_fields, with_cosmology);
-          num_fields +=
-              star_formation_write_sparticles(sparts, list + num_fields);
+          num_fields += star_formation_write_sparticles(sparts_written,
+                                                        list + num_fields);
           if (with_fof) {
             num_fields += fof_write_sparts(sparts_written, list + num_fields);
           }