diff --git a/src/scheduler.c b/src/scheduler.c
index f298f5e8da16ffa918ed66ebcb5f06e9e960360d..82f9275f07fd6d4823334da5eca7131e1db7d260 100644
--- a/src/scheduler.c
+++ b/src/scheduler.c
@@ -215,7 +215,7 @@ static void scheduler_splittask(struct task *t, struct scheduler *s) {
 
         /* Replace by a single sub-task? */
         if (scheduler_dosub &&
-            ci->count * sid_scale[sid] < space_subsize / cj->count &&
+            ci->count * cj->count * sid_scale[sid] < space_subsize &&
             sid != 0 && sid != 2 && sid != 6 && sid != 8) {
 
           /* Make this task a sub task. */