diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
index 7f05e05bb0d0ea119a53ca715ee9617b2fe5dae4..ce486dcfa4bd7676c96f70a6468ad94fd3107648 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c
@@ -769,7 +769,11 @@ pdcp_data_ind(
          */
           if (nfapi_mode == 3) {
 #ifdef UESIM_EXPANSION
-            ((pdcp_data_ind_header_t*) new_sdu_p->data)->inst  = 0;
+            if (UE_NAS_USE_TUN) {
+              ((pdcp_data_ind_header_t*) new_sdu_p->data)->inst  = ctxt_pP->module_id;
+            } else {
+              ((pdcp_data_ind_header_t*) new_sdu_p->data)->inst  = 0;
+            }
 #else
             ((pdcp_data_ind_header_t*) new_sdu_p->data)->inst  = ctxt_pP->module_id;
 #endif
diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
index 9532cf3324315237e483cd40c047a0f59cdb75ee..4b20cf16a45f2fcac953ae8ae526b2a0b2b72b31 100644
--- a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
+++ b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c
@@ -109,7 +109,7 @@ int pdcp_fifo_flush_sdus(const protocol_ctxt_t *const  ctxt_pP) {
   int              pdcp_nb_sdu_sent = 0;
   int              ret=0;
 
-  while ((sdu_p = list_get_head (&pdcp_sdu_list)) != NULL) {
+  while ((sdu_p = list_get_head (&pdcp_sdu_list)) != NULL && ((pdcp_data_ind_header_t *)(sdu_p->data))->inst == ctxt_pP->module_id) {
     ((pdcp_data_ind_header_t *)(sdu_p->data))->inst = 0;
     int rb_id = ((pdcp_data_ind_header_t *)(sdu_p->data))->rb_id;
     int sizeToWrite= sizeof (pdcp_data_ind_header_t) +