diff --git a/examples/HydroTests/SodShock_3D/sodShock.yml b/examples/HydroTests/SodShock_3D/sodShock.yml
index 816af9c9ad620ce8617340d749b8ab3e61e53ec6..4c6c9b9dec880fb0fd6cb3243b11bade405d53e2 100644
--- a/examples/HydroTests/SodShock_3D/sodShock.yml
+++ b/examples/HydroTests/SodShock_3D/sodShock.yml
@@ -19,6 +19,9 @@ Snapshots:
   time_first:          0.       # Time of the first output (in internal units)
   delta_time:          0.2      # Time difference between consecutive outputs (in internal units)
   compression:         1
+
+Scheduler:
+  links_per_tasks: 75
   
 # Parameters governing the conserved quantities statistics
 Statistics:
diff --git a/examples/parameter_example.yml b/examples/parameter_example.yml
index 29e467fca247b25288951239787db2a83121aa55..375c5abc22d117b7322dd49e37109430b3ef0e32 100644
--- a/examples/parameter_example.yml
+++ b/examples/parameter_example.yml
@@ -72,7 +72,7 @@ Scheduler:
   cell_extra_sparts:         400       # (Optional) Number of spare sparts per top-level allocated at rebuild time for on-the-fly creation.
   max_top_level_cells:       12        # (Optional) Maximal number of top-level cells in any dimension. The number of top-level cells will be the cube of this (this is the default value).
   tasks_per_cell:            0.0       # (Optional) The average number of tasks per cell. If not large enough the simulation will fail (means guess...).
-  links_per_tasks:           10        # (Optional) The average number of links per tasks (before adding the communication tasks). If not large enough the simulation will fail (means guess...). Defaults to 10.
+  links_per_tasks:           25        # (Optional) The average number of links per tasks (before adding the communication tasks). If not large enough the simulation will fail (means guess...). Defaults to 10.
   mpi_message_limit:         4096      # (Optional) Maximum MPI task message size to send non-buffered, KB.
   engine_max_parts_per_ghost:   1000   # (Optional) Maximum number of parts per ghost.
   engine_max_sparts_per_ghost:  1000   # (Optional) Maximum number of sparts per ghost.
diff --git a/src/engine.c b/src/engine.c
index 94eb692511ebf30d19a7047926cdc08b9e1232ad..36cf0709044c885ae48890bf9051a905f57839f1 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -4118,6 +4118,7 @@ void engine_unskip(struct engine *e) {
   const int with_ext_grav = e->policy & engine_policy_external_gravity;
   const int with_stars = e->policy & engine_policy_stars;
   const int with_feedback = e->policy & engine_policy_feedback;
+  const int with_black_holes = e->policy & engine_policy_black_holes;
 
 #ifdef WITH_PROFILER
   static int count = 0;
@@ -4137,7 +4138,8 @@ void engine_unskip(struct engine *e) {
         (with_ext_grav && c->nodeID == nodeID &&
          cell_is_active_gravity(c, e)) ||
         (with_feedback && cell_is_active_stars(c, e)) ||
-        (with_stars && c->nodeID == nodeID && cell_is_active_stars(c, e))) {
+        (with_stars && c->nodeID == nodeID && cell_is_active_stars(c, e)) ||
+        (with_black_holes && cell_is_active_black_holes(c, e))) {
 
       if (num_active_cells != k)
         memswap(&local_cells[k], &local_cells[num_active_cells], sizeof(int));
@@ -5513,7 +5515,7 @@ void engine_config(int restart, struct engine *e, struct swift_params *params,
 
   /* Estimated number of links per tasks */
   e->links_per_tasks =
-      parser_get_opt_param_int(params, "Scheduler:links_per_tasks", 15);
+      parser_get_opt_param_int(params, "Scheduler:links_per_tasks", 25);
 
   /* Init the scheduler. */
   scheduler_init(&e->sched, e->s, maxtasks, nr_queues,
diff --git a/src/engine_maketasks.c b/src/engine_maketasks.c
index 49dec37a422f38ee2755a18051aaa7f41d6906e3..ad9af793698f21451a2ddc0cab9557be32a157a3 100644
--- a/src/engine_maketasks.c
+++ b/src/engine_maketasks.c
@@ -2064,7 +2064,6 @@ void engine_make_extra_hydroloop_tasks_mapper(void *map_data, int num_elements,
         scheduler_addunlock(sched, ci->hydro.super->black_holes.drift,
                             t_bh_density);
         scheduler_addunlock(sched, ci->hydro.super->hydro.drift, t_bh_density);
-        scheduler_addunlock(sched, ci->hydro.super->hydro.sorts, t_bh_density);
         scheduler_addunlock(sched, ci->hydro.super->black_holes.black_holes_in,
                             t_bh_density);
         scheduler_addunlock(sched, t_bh_density,
diff --git a/src/space.c b/src/space.c
index 87673e104d2cbd2bd6115976d7d85eca48ef038d..bdf71370c245af7946419cec4b61f5db4a191693 100644
--- a/src/space.c
+++ b/src/space.c
@@ -248,6 +248,8 @@ void space_rebuild_recycle_mapper(void *map_data, int num_elements,
     c->stars.stars_in = NULL;
     c->stars.stars_out = NULL;
     c->black_holes.drift = NULL;
+    c->black_holes.black_holes_in = NULL;
+    c->black_holes.black_holes_out = NULL;
     c->grav.drift = NULL;
     c->grav.drift_out = NULL;
     c->hydro.cooling = NULL;
diff --git a/tools/task_plots/analyse_tasks.py b/tools/task_plots/analyse_tasks.py
index fb48e6cf7317c8d5e18035dce496bba74aee5864..841865047663e5de4f24e47ed41c559b66af2406 100755
--- a/tools/task_plots/analyse_tasks.py
+++ b/tools/task_plots/analyse_tasks.py
@@ -121,6 +121,7 @@ SUBTYPES = [
     "tend_part",
     "tend_gpart",
     "tend_spart",
+    "tend_bpart",
     "xv",
     "rho",
     "gpart",
@@ -129,6 +130,7 @@ SUBTYPES = [
     "stars_density",
     "stars_feedback",
     "sf_counts"
+    "bpart",
     "bh_density",
     "bh_feedback",
     "count",
diff --git a/tools/task_plots/plot_tasks.py b/tools/task_plots/plot_tasks.py
index 8536dd51f7708c0b30a7dd7760987bf2c45172ba..94e4d9a5534c4e6ba4efb5d0e06ab1207156063a 100755
--- a/tools/task_plots/plot_tasks.py
+++ b/tools/task_plots/plot_tasks.py
@@ -206,6 +206,7 @@ SUBTYPES = [
     "tend_part",
     "tend_gpart",
     "tend_spart",
+    "tend_bpart",
     "xv",
     "rho",
     "gpart",
@@ -214,6 +215,7 @@ SUBTYPES = [
     "stars_density",
     "stars_feedback",
     "sf_counts",
+    "bpart",
     "bh_density",
     "bh_feedback",
     "count",
@@ -249,12 +251,16 @@ FULLTYPES = [
     "send/tend_gpart",
     "recv/tend_spart",
     "send/tend_spart",
+    "recv/tend_bpart",
+    "send/tend_bpart",
     "recv/gpart",
     "send/gpart",
     "recv/spart",
     "send/spart",
     "send/sf_counts",
     "recv/sf_counts",
+    "recv/bpart",
+    "send/bpart",
     "self/stars_density",
     "pair/stars_density",
     "sub_self/stars_density",