diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
index 0d5dd38b5c65200fc831572398affb15a5d5948c..34f8fe0b85350c4f1fd0c1ce31b82786a6421546 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c
@@ -2353,9 +2353,10 @@ static int slice_priority_compare(const void *_a, const void *_b, void *_c)
 void slice_priority_sort(module_id_t Mod_id, int slice_list[MAX_NUM_SLICES])
 {
   int i;
-  for (i = 0; i < MAX_NUM_SLICES; ++i) {
+  for (i = 0; i < RC.mac[Mod_id]->slice_info.n_dl; ++i) {
     slice_list[i] = i;
   }
 
-  qsort_r(slice_list, MAX_NUM_SLICES, sizeof(int), slice_priority_compare, &Mod_id);
+  qsort_r(slice_list, RC.mac[Mod_id]->slice_info.n_dl, sizeof(int),
+          slice_priority_compare, &Mod_id);
 }