diff --git a/src/model.cpp b/src/model.cpp
index de395019003b88ede71a39141acbf08436323f1d..0495cbdab42ff536c94acad09b5420d796429df6 100644
--- a/src/model.cpp
+++ b/src/model.cpp
@@ -115,7 +115,7 @@ time_type model::run(time_type tfinal, time_type dt) {
         PL();
 
         PE("enqueue");
-        threading::parallel_for::apply(0, num_groups(),
+        threading::parallel_for::apply(0, communicator_.num_local_cells(),
             [&](cell_size_type i) {
                 const auto epid = epoch_.id;
                 merge_events(
diff --git a/tests/unit/test_mc_cell_group.cu b/tests/unit/test_mc_cell_group.cu
index 2f0a8faf704119c592b9a2f74bb88f6dc17e8680..8c5a2e112c6bcb1a39effc3379c54c603f8885c1 100644
--- a/tests/unit/test_mc_cell_group.cu
+++ b/tests/unit/test_mc_cell_group.cu
@@ -26,7 +26,7 @@ TEST(mc_cell_group, test)
 {
     mc_cell_group<fvm_cell> group({0u}, cable1d_recipe(make_cell()));
 
-    group.advance(epoch(0, 50), 0.01);
+    group.advance(epoch(0, 50), 0.01, {});
 
     // the model is expected to generate 4 spikes as a result of the
     // fixed stimulus over 50 ms