diff --git a/src/single_io.c b/src/single_io.c
index ad2560db96f7bf2b4c60141bf9ff945b2bb745b0..0c2a49c1711f815808b5d3899ae8484533feee18 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -782,6 +782,10 @@ void write_output_single(struct engine* e, const char* baseName,
   if (e->snapshot_int_time_label_on)
     snprintf(fileName, FILENAME_BUFFER_SIZE, "%s_%06i.hdf5", baseName,
              (int)round(e->time));
+  else if (e->snapshot_invoke_stf) {
+    snprintf(fileName, FILENAME_BUFFER_SIZE, "%s_%04i.hdf5", baseName,
+             e->stf_output_count);
+  } 
   else
     snprintf(fileName, FILENAME_BUFFER_SIZE, "%s_%04i.hdf5", baseName,
              e->snapshot_output_count);
@@ -1293,6 +1297,7 @@ void write_output_single(struct engine* e, const char* baseName,
   H5Fclose(h_file);
 
   e->snapshot_output_count++;
+  if (e->snapshot_invoke_stf) e->stf_output_count++;
 }
 
 #endif /* HAVE_HDF5 && !WITH_MPI */