diff --git a/src/modules/butterflies/butterflies_actions.c b/src/modules/butterflies/butterflies_actions.c
index aedcd40f1b7057b683d9d7c10032e78cdf61c37b..9ab93993526199ab4f2bd8ea5eac43e1dfa5c9b9 100644
--- a/src/modules/butterflies/butterflies_actions.c
+++ b/src/modules/butterflies/butterflies_actions.c
@@ -167,15 +167,47 @@ void initial_population_adjustment(struct cats_configuration *conf, struct cats_
         int64_t invalid_habitat = butterflies_prune_invalid_cells(grid);
         log_message(LOG_IMPORTANT, "Loaded initial populations: %ld cells occupied before adjustment", init_populated_cells);
         if (grid->param.initial_population.set_to_cc == true) {
+
+#define DEBUG_INITIAL_POPULATIONS
+#ifdef DEBUG_INITIAL_POPULATIONS
                 const int32_t max_i = 10;
                 struct cats_vital_rate *cc_rate = &grid->param.carrying_capacity;
+                cats_dt_rates OT =  grid->param.OT;
                 for (int32_t i = 0; i < max_i; i++) {
-                        cats_dt_rates OT =  grid->param.OT;
+
                         cats_dt_rates suit = OT + i * (1.0 - OT)/max_i;
                         cats_dt_rates cc = cc_rate->func->func(cc_rate, &grid->param, suit, 0, NAN);
                         log_message(LOG_INFO, "Carrying capacity for suitability %Lf: %Lf", suit, cc);
 
                 }
+                const cats_dt_coord rows = grid->dimension.rows;
+                const cats_dt_coord cols = grid->dimension.cols;
+                int64_t start = 0;
+                int64_t multi_excluded = 0;
+
+                for (cats_dt_coord row = 0; row < rows; row++) {
+                        for (cats_dt_coord col = 0; col < cols; col++) {
+                                if (get_adult_population(grid, row, col) == 0) continue;
+                                start += 1;
+                                cats_dt_rates multiplier = 1.0;
+                                if (conf->overlays.overlay[OL_HABITAT_TYPE_CC].enabled) {
+                                        multiplier *= conf->overlays.habitat_cc->data[row][col];
+                                }
+                                cats_dt_rates suit = get_suitability(grid, row, col);
+                                cats_dt_rates cc_raw = cc_rate->func->func(cc_rate, &grid->param, suit, 0, NAN);
+                                if (multiplier == 0) {
+                                    multi_excluded += 1;
+                                }
+                                cats_dt_population cc = get_carrying_capacity(grid, row, col);
+
+                                printf("DEBUG::row %d col %d, suit %Lf, cc multi %Lf, cc raw %Lf, cc %d\n", row, col, suit, multiplier, cc_raw, cc);
+                        }
+                }
+
+
+
+#endif
+
                 increase_initial_population_to_cc(grid, conf);
                 int64_t populated_cells_after_cc = count_populated_cells(grid);
                 log_message(LOG_IMPORTANT, "\t%ld cells occupied after setting population sizes to carrying capacity", populated_cells_after_cc);