diff --git a/binarycpython/utils/functions.py b/binarycpython/utils/functions.py
index 9691f1f55539eeb010f89bf87f674dee20064562..039d36c233c4298a4482719f8b4a87fcf0124b01 100644
--- a/binarycpython/utils/functions.py
+++ b/binarycpython/utils/functions.py
@@ -1497,6 +1497,11 @@ def merge_dicts(dict_1: dict, dict_2: dict) -> dict:
                 type(dict_2[key]) in [int, float, np.float64]
             ):
                 new_dict[key] = dict_1[key] + dict_2[key]
+            # Exceptions:
+            elif (type(dict_1[key]) in [dict, OrderedDict]) and (
+                type(dict_2[key]) in [dict, OrderedDict]
+            ):
+                new_dict[key] = merge_dicts(dict_1[key], dict_2[key])
 
             else:
                 print(
diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py
index 8271604cb5892a7118eac48b496d3065a2dc70ed..eae019acd60757b704416aa254a9c2ae72226d1c 100644
--- a/binarycpython/utils/grid.py
+++ b/binarycpython/utils/grid.py
@@ -943,7 +943,6 @@ class Population:
         # Put back in the dictionary
         return reformatted_ensemble_results
 
-
     def _evolve_population_grid(self):
         """
         Function to evolve the population with multiprocessing approach.