diff --git a/openair2/RRC/LTE/L2_interface_common.c b/openair2/RRC/LTE/L2_interface_common.c
index 49592ba261550f65c16832ae8cae19e28ae6d8f9..8f7909a37520dfa44bbba75438b83b417498a3f2 100644
--- a/openair2/RRC/LTE/L2_interface_common.c
+++ b/openair2/RRC/LTE/L2_interface_common.c
@@ -44,6 +44,8 @@
 //#define RRC_DATA_REQ_DEBUG
 //#define DEBUG_RRC 1
 
+extern RAN_CONTEXT_t RC;
+
 //------------------------------------------------------------------------------
 uint8_t
 rrc_data_req(
@@ -106,8 +108,11 @@ rrc_data_req(
       ctxt_pP->instance,
       message_p);
     LOG_I(RRC,"sent RRC_DCCH_DATA_REQ to TASK_PDCP_ENB\n");
-    // RS/BK: Fix ME
-    pdcp_run(ctxt_pP);
+    /* Hack: only trigger PDCP if in CU, otherwise it is triggered by RU threads
+     * Ideally, PDCP would not neet to be triggered like this but react to ITTI
+     * messages automatically */
+    if (RC.rrc[ctxt_pP->module_id]->node_type == ngran_eNB_CU || RC.rrc[ctxt_pP->module_id]->node_type == ngran_ng_eNB_CU || RC.rrc[ctxt_pP->module_id]->node_type == ngran_gNB_CU)
+      pdcp_run(ctxt_pP);
 
     return TRUE; // TODO should be changed to a CNF message later, currently RRC lite does not used the returned value anyway.