diff --git a/src/modules/butterflies/butterflies_actions.c b/src/modules/butterflies/butterflies_actions.c
index f563030b9cd2d5a3d1026d199711473ac910abd7..9231a674ede8b5708ea4217d5a2ca6347423f910 100644
--- a/src/modules/butterflies/butterflies_actions.c
+++ b/src/modules/butterflies/butterflies_actions.c
@@ -16,6 +16,7 @@
 #include "butterflies_filenames.h"
 #include "inline.h"
 #include "lambda/leslie_matrix.h"
+#include "temporal/years.h"
 
 
 enum action_status bf_action_stats_reset(struct cats_grid *grid, struct cats_configuration *conf)
@@ -153,6 +154,7 @@ enum action_status bf_action_maturation(struct cats_grid *grid, struct cats_conf
 
 enum action_status bf_action_save_grid(struct cats_grid *grid, struct cats_configuration *conf)
 {
+        if (!is_output_year(&conf->time)) return ACTION_NOT_RUN;
         int32_t id = grid->id;
         char *filename = bf_population_filename(conf, grid);
         struct grid_wrapper data = gridwrapper(grid->population, grid->dimension);
@@ -163,7 +165,9 @@ enum action_status bf_action_save_grid(struct cats_grid *grid, struct cats_confi
 
 enum action_status bf_action_save_overlay(struct cats_grid *grid, struct cats_configuration *conf)
 {
+        if (!is_output_year(&conf->time)) return ACTION_NOT_RUN;
         int32_t id = grid->id;
+
         char *filename = bf_population_overlay_filename(conf, grid);
         int module_id = CATS_MODULE_ID;
 
@@ -179,6 +183,7 @@ enum action_status bf_action_save_overlay(struct cats_grid *grid, struct cats_co
 
 enum action_status bf_action_save_eggs_grid(struct cats_grid *grid, struct cats_configuration *conf)
 {
+        if (!is_output_year(&conf->time)) return ACTION_NOT_RUN;
         int32_t id = grid->id;
         int module_id = CATS_MODULE_ID;
         struct grid_data_butterflies *module_data = grid->grid_modules[module_id].module_data;