diff --git a/src/engine.c b/src/engine.c
index 63a0969aade0baeb3ae9471773eb87dfab72f308..4a5a66eea3164aebd5fd3582e90abed12ace3050 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -4437,7 +4437,7 @@ void engine_config(int restart, int fof, struct engine *e,
 
   /* Estimated number of links per tasks */
   e->links_per_tasks =
-      parser_get_opt_param_int(params, "Scheduler:links_per_tasks", 25);
+      parser_get_opt_param_float(params, "Scheduler:links_per_tasks", 25.);
 
   /* Init the scheduler. */
   scheduler_init(&e->sched, e->s, maxtasks, nr_queues,
diff --git a/src/engine.h b/src/engine.h
index ecf9979b57dc4b382b8772ca9a34002387bc8c3e..f3f583fed90028cd40189dad0a47dba8f7c5dc38 100644
--- a/src/engine.h
+++ b/src/engine.h
@@ -403,7 +403,7 @@ struct engine {
 
   /* Average number of links per tasks. This number is used before
      the creation of communication tasks so needs to be large enough. */
-  size_t links_per_tasks;
+  float links_per_tasks;
 
   /* Are we talkative ? */
   int verbose;