diff --git a/openair2/LAYER2/MAC/main.c b/openair2/LAYER2/MAC/main.c
index e34e0e1dd031fa52fb418752ff96603200698c32..fcbcf605670465a4ed2dbcbb51e31290823761fc 100644
--- a/openair2/LAYER2/MAC/main.c
+++ b/openair2/LAYER2/MAC/main.c
@@ -29,6 +29,7 @@
 
  */
 
+#include <dlfcn.h>
 #include "mac.h"
 #include "mac_proto.h"
 #include "mac_extern.h"
@@ -149,6 +150,8 @@ void mac_top_init_eNB(void)
         sli->dl[0].sorting = 0x012345;
         sli->dl[0].update_sched = 1;
         sli->dl[0].sched_name = "schedule_ue_spec";
+        sli->dl[0].sched_cb = dlsym(NULL, sli->dl[0].sched_name);
+        AssertFatal(sli->dl[0].sched_cb, "DLSCH scheduler callback is NULL\n");
 
         sli->n_ul = 1;
         memset(sli->ul, 0, sizeof(slice_sched_conf_ul_t) * MAX_NUM_SLICES);
@@ -157,6 +160,8 @@ void mac_top_init_eNB(void)
         sli->ul[0].sorting = 0x0123;
         sli->ul[0].update_sched = 1;
         sli->ul[0].sched_name = "schedule_ulsch_rnti";
+        sli->ul[0].sched_cb = dlsym(NULL, sli->ul[0].sched_name);
+        AssertFatal(sli->ul[0].sched_cb, "ULSCH scheduler callback is NULL\n");
     }
 
 }