diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
index b5256820bb9757df5e9f2ad185262c6a6c3d5079..119f5b80748025a206a9f9cb3f916c56857dd722 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
@@ -1233,6 +1233,9 @@ schedule_ulsch_rnti(module_id_t module_idP,
     for (UE_id = UE_list->head_ul; UE_id >= 0;
 	 UE_id = UE_list->next_ul[UE_id]) {
 
+        if (flexran_slice_member(UE_id, slice_id) == 0)
+            continue;
+
 	// don't schedule if Msg4 is not received yet
 	if (UE_list->UE_template[UE_PCCID(module_idP, UE_id)][UE_id].
 	    configured == FALSE) {
diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c
index a0cc0dd412fd77fbe3d024aace690e2cca3d54c2..af5b6f660be4f2ed8a2fe3641cc3c47dad0bc42c 100644
--- a/openair2/LAYER2/MAC/pre_processor.c
+++ b/openair2/LAYER2/MAC/pre_processor.c
@@ -614,6 +614,9 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
 	    if (UE_list->active[i] != TRUE)
 		continue;
 
+            if (!flexran_slice_member(UE_id, slice_id))
+                continue;
+
 	    UE_id = i;
 	    // Initialize scheduling information for all active UEs
 
@@ -820,6 +823,8 @@ dlsch_scheduler_pre_processor(module_id_t Mod_id,
 			continue;
 		    if (UE_list->UE_sched_ctrl[UE_id].ul_out_of_sync == 1)
 			continue;
+                    if (flexran_slice_member(i, slice_id) == 0)
+                        continue;
 
 		    transmission_mode = get_tmode(Mod_id, CC_id, UE_id);
 		    //          mac_xface->get_ue_active_harq_pid(Mod_id,CC_id,rnti,frameP,subframeP,&harq_pid,&round,0);