diff --git a/src/common_io.c b/src/common_io.c
index 140dfc14593aa8964845e3bb73cbf01c2176e534..677e0295978b28fda80fb18e989d9a88487f4e2c 100644
--- a/src/common_io.c
+++ b/src/common_io.c
@@ -1805,8 +1805,8 @@ void io_check_output_fields(const struct swift_params* params,
       /* loop over each possible output field */
       for (int field_id = 0; field_id < num_fields; field_id++) {
         char field_name[PARSER_MAX_LINE_SIZE];
-        sprintf(field_name, "SelectOutput:%s_%s", list[field_id].name,
-                part_type_names[ptype]);
+        sprintf(field_name, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, 
+		list[field_id].name, part_type_names[ptype]);
 
         if (strcmp(param_name, field_name) == 0) {
           found = 1;
diff --git a/src/parallel_io.c b/src/parallel_io.c
index db1fbe2426a3e858dd429aa495641a4e0d4ed631..b90a3848d9acc88a8f41956a27f40c72277b7524 100644
--- a/src/parallel_io.c
+++ b/src/parallel_io.c
@@ -1247,7 +1247,7 @@ void prepare_file(struct engine* e, const char* baseName, long long N_total[6],
 
       /* Did the user cancel this field? */
       char field[PARSER_MAX_LINE_SIZE];
-      sprintf(field, "SelectOutput:%s_%s", list[i].name,
+      sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
               part_type_names[ptype]);
       int should_write = parser_get_opt_param_int(params, field, 1);
 
@@ -1716,7 +1716,7 @@ void write_output_parallel(struct engine* e, const char* baseName,
 
       /* Did the user cancel this field? */
       char field[PARSER_MAX_LINE_SIZE];
-      sprintf(field, "SelectOutput:%s_%s", list[i].name,
+      sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
               part_type_names[ptype]);
       int should_write = parser_get_opt_param_int(params, field, 1);
 
diff --git a/src/serial_io.c b/src/serial_io.c
index c05c69e1e86b737e1e7f06b995f89f6bb548901a..d0858766c6fce81cda85a780dea58ac5c5eddee3 100644
--- a/src/serial_io.c
+++ b/src/serial_io.c
@@ -1359,7 +1359,7 @@ void write_output_serial(struct engine* e, const char* baseName,
 
           /* Did the user cancel this field? */
           char field[PARSER_MAX_LINE_SIZE];
-          sprintf(field, "SelectOutput:%s_%s", list[i].name,
+          sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
                   part_type_names[ptype]);
           int should_write = parser_get_opt_param_int(params, field, 1);
 
diff --git a/src/single_io.c b/src/single_io.c
index 7a7856d29ce35435f750f2f71d66e0269d114261..0a5d20236d85b7a707054e856f86323172d2ff8c 100644
--- a/src/single_io.c
+++ b/src/single_io.c
@@ -1151,7 +1151,7 @@ void write_output_single(struct engine* e, const char* baseName,
 
       /* Did the user cancel this field? */
       char field[PARSER_MAX_LINE_SIZE];
-      sprintf(field, "SelectOutput:%s_%s", list[i].name,
+      sprintf(field, "SelectOutput:%.*s_%s", FIELD_BUFFER_SIZE, list[i].name,
               part_type_names[ptype]);
       int should_write = parser_get_opt_param_int(params, field, 1);