diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c
index 365993337864bd1035a9891239aa91ac2475aef9..901043d8d900272ad91acd540635672049084b34 100644
--- a/openair2/LAYER2/MAC/eNB_scheduler.c
+++ b/openair2/LAYER2/MAC/eNB_scheduler.c
@@ -897,10 +897,12 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
   } // end for loop on UE_id
 
 #if (!defined(PRE_SCD_THREAD))
-  PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, NOT_A_RNTI, frameP, subframeP, module_idP);
-  pdcp_run(&ctxt);
-  pdcp_mbms_run(&ctxt);
-  rrc_rx_tx(&ctxt, CC_id);
+  if (!NODE_IS_DU(RC.rrc[module_idP]->node_type)) {
+    PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, ENB_FLAG_YES, NOT_A_RNTI, frameP, subframeP, module_idP);
+    pdcp_run(&ctxt);
+    pdcp_mbms_run(&ctxt);
+    rrc_rx_tx(&ctxt, CC_id);
+  }
 #endif
 
   for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {