diff --git a/openair3/NAS/UE/EMM/Attach.c b/openair3/NAS/UE/EMM/Attach.c
index 12be189d9bcdbe7b64fe5dad88830d92b6c14563..d765ff0fa73ce799e6420a83e5fb23d1fa0fe908 100644
--- a/openair3/NAS/UE/EMM/Attach.c
+++ b/openair3/NAS/UE/EMM/Attach.c
@@ -440,7 +440,7 @@ int emm_proc_attach_accept(nas_user_t *user, long t3412, long t3402, long t3423,
      */
     emm_sap.primitive = EMMAS_DATA_REQ;
     emm_sap.u.emm_as.u.data.guti = user->emm_data->guti;
-    emm_sap.u.emm_as.u.data.ueid = 0;
+    emm_sap.u.emm_as.u.data.ueid = user->ueid;
     /* Setup EPS NAS security data */
     emm_as_set_security_data(&emm_sap.u.emm_as.u.data.sctx,
                              user->emm_data->security, FALSE, TRUE);
diff --git a/openair3/NAS/UE/EMM/Authentication.c b/openair3/NAS/UE/EMM/Authentication.c
index cb448388f7293ed41ac7a6b101ad64e22e708f27..56ec2bd833805ca6cf26f3d95d4964b00b5102c4 100644
--- a/openair3/NAS/UE/EMM/Authentication.c
+++ b/openair3/NAS/UE/EMM/Authentication.c
@@ -304,7 +304,7 @@ int emm_proc_authentication_request(nas_user_t *user, int native_ksi, int ksi,
   emm_sap_t emm_sap;
   emm_sap.primitive = EMMAS_SECURITY_RES;
   emm_sap.u.emm_as.u.security.guti = user->emm_data->guti;
-  emm_sap.u.emm_as.u.security.ueid = 0;
+  emm_sap.u.emm_as.u.security.ueid = user->ueid;
   emm_sap.u.emm_as.u.security.msgType = EMM_AS_MSG_TYPE_AUTH;
   emm_sap.u.emm_as.u.security.emm_cause = EMM_CAUSE_SUCCESS;
   emm_sap.u.emm_as.u.security.res = &res;
@@ -648,7 +648,7 @@ static int _authentication_abnormal_cases_cde(nas_user_t *user, int emm_cause,
   emm_sap_t emm_sap;
   emm_sap.primitive = EMMAS_SECURITY_RES;
   emm_sap.u.emm_as.u.security.guti = user->emm_data->guti;
-  emm_sap.u.emm_as.u.security.ueid = 0;
+  emm_sap.u.emm_as.u.security.ueid = user->ueid;
   emm_sap.u.emm_as.u.security.msgType = EMM_AS_MSG_TYPE_AUTH;
   emm_sap.u.emm_as.u.security.emm_cause = emm_cause;
   emm_sap.u.emm_as.u.security.auts = auts;
diff --git a/openair3/NAS/UE/EMM/Detach.c b/openair3/NAS/UE/EMM/Detach.c
index 58148205a3a6def5830315f26b97ffc4f095c472..e59d8b7d949dfbdeacee44da8a6d8d65592f205a 100644
--- a/openair3/NAS/UE/EMM/Detach.c
+++ b/openair3/NAS/UE/EMM/Detach.c
@@ -151,7 +151,7 @@ int emm_proc_detach(nas_user_t *user, emm_proc_detach_type_t type, int switch_of
   emm_as->switch_off = switch_off;
   /* Set the EPS mobile identity */
   emm_as->guti = user->emm_data->guti;
-  emm_as->ueid = 0;
+  emm_as->ueid = user->ueid;
   /* Setup EPS NAS security data */
   emm_as_set_security_data(&emm_as->sctx, user->emm_data->security, FALSE, TRUE);
 
@@ -402,7 +402,7 @@ void *emm_detach_t3421_handler(void *args)
     emm_as->switch_off = emm_detach_data->switch_off;
     /* Set the EPS mobile identity */
     emm_as->guti = user->emm_data->guti;
-    emm_as->ueid = 0;
+    emm_as->ueid = user->ueid;
     /* Setup EPS NAS security data */
     emm_as_set_security_data(&emm_as->sctx, user->emm_data->security,
                              FALSE, TRUE);
diff --git a/openair3/NAS/UE/EMM/Identification.c b/openair3/NAS/UE/EMM/Identification.c
index 53bc008cab162bc3a9f12d5cd04ac79048a76ab9..e894e9e045c286d15b4a23af92a1515626bf385a 100644
--- a/openair3/NAS/UE/EMM/Identification.c
+++ b/openair3/NAS/UE/EMM/Identification.c
@@ -195,7 +195,7 @@ int emm_proc_identification_request(nas_user_t *user, emm_proc_identity_type_t t
    */
   emm_sap.primitive = EMMAS_SECURITY_RES;
   emm_sap.u.emm_as.u.security.guti = user->emm_data->guti;
-  emm_sap.u.emm_as.u.security.ueid = 0;
+  emm_sap.u.emm_as.u.security.ueid = user->ueid;
   emm_sap.u.emm_as.u.security.msgType = EMM_AS_MSG_TYPE_IDENT;
   /* Setup EPS NAS security data */
   emm_as_set_security_data(&emm_sap.u.emm_as.u.security.sctx,
diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c
index 49668d61ab500368b8cf8fa662f349039410421e..dfe055f4d628c05648a716c16103369bdb8f91ac 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_as.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_as.c
@@ -194,7 +194,7 @@ int emm_as_send(nas_user_t *user, const emm_as_t *msg)
   int emm_cause = EMM_CAUSE_SUCCESS;
   emm_as_primitive_t primitive = msg->primitive;
 
-  uint32_t ueid = 0;
+  uint32_t ueid = user->ueid;
 
   LOG_TRACE(INFO, "EMMAS-SAP - Received primitive %s (%d)",
             _emm_as_primitive_str[primitive - _EMMAS_START - 1], primitive);
diff --git a/openair3/NAS/UE/EMM/SecurityModeControl.c b/openair3/NAS/UE/EMM/SecurityModeControl.c
index 5a90b43cdee7d64bc7f2ffa423056ab7f3e86c04..43a5db1ff4195d2f41a8ffb93638c5d13905af25 100644
--- a/openair3/NAS/UE/EMM/SecurityModeControl.c
+++ b/openair3/NAS/UE/EMM/SecurityModeControl.c
@@ -323,7 +323,7 @@ int emm_proc_security_mode_command(nas_user_t *user, int native_ksi, int ksi,
   emm_sap_t emm_sap;
   emm_sap.primitive = EMMAS_SECURITY_RES;
   emm_sap.u.emm_as.u.security.guti = user->emm_data->guti;
-  emm_sap.u.emm_as.u.security.ueid = 0;
+  emm_sap.u.emm_as.u.security.ueid = user->ueid;
   emm_sap.u.emm_as.u.security.msgType = EMM_AS_MSG_TYPE_SMC;
   emm_sap.u.emm_as.u.security.imeisv_request = imeisv_request;
   emm_sap.u.emm_as.u.security.emm_cause = emm_cause;
diff --git a/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
index 068ec2aef0a306c74349360fa1be0dbb99ec3640..3a32d3040d328e64cdaa057817f064348226b559 100644
--- a/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
+++ b/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c
@@ -224,7 +224,7 @@ int esm_proc_dedicated_eps_bearer_context_accept(nas_user_t *user, int is_standa
    * Notity EMM that ESM PDU has to be forwarded to lower layers
    */
   emm_sap.primitive = EMMESM_UNITDATA_REQ;
-  emm_sap.u.emm_esm.ueid = 0;
+  emm_sap.u.emm_esm.ueid = user->ueid;
   emm_esm->msg.length = msg->length;
   emm_esm->msg.value = msg->value;
   rc = emm_sap_send(user, &emm_sap);
@@ -292,7 +292,7 @@ int esm_proc_dedicated_eps_bearer_context_reject(nas_user_t *user, int is_standa
      * Notity EMM that ESM PDU has to be forwarded to lower layers
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = msg->length;
     emm_esm->msg.value = msg->value;
     rc = emm_sap_send(user, &emm_sap);
diff --git a/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
index 92ae9dcd99d28c1cedeba8c456868ab3cfd467e5..71421a475d0eb0c8f1352862a334cee1cc25e439 100644
--- a/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
+++ b/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c
@@ -194,7 +194,7 @@ int esm_proc_default_eps_bearer_context_accept(nas_user_t *user, int is_standalo
      * Notity EMM that ESM PDU has to be forwarded to lower layers
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = msg->length;
     emm_esm->msg.value = msg->value;
     rc = emm_sap_send(user, &emm_sap);
@@ -269,8 +269,7 @@ int esm_proc_default_eps_bearer_context_reject(nas_user_t *user, int is_standalo
      * Notity EMM that ESM PDU has to be forwarded to lower layers
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    // FIXME REVIEW
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = msg->length;
     emm_esm->msg.value = msg->value;
     rc = emm_sap_send(user, &emm_sap);
diff --git a/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c b/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
index 0ffb683bf12694ca4193025fbf1675c1ed0b40cb..6ba5e6e1cc2233f16faba458817d6d7ef477ac05 100644
--- a/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
+++ b/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c
@@ -292,7 +292,7 @@ int esm_proc_eps_bearer_context_deactivate_accept(nas_user_t *user, int is_stand
      * Notity EMM that ESM PDU has to be forwarded to lower layers
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_sap.u.emm_esm.u.data.msg.length = msg->length;
     emm_sap.u.emm_esm.u.data.msg.value = msg->value;
     rc = emm_sap_send(user, &emm_sap);
diff --git a/openair3/NAS/UE/ESM/EsmStatusHdl.c b/openair3/NAS/UE/ESM/EsmStatusHdl.c
index f42cdb02ae48e7c4eb4934b32fdd6c040a185064..4c8e0aafc1386f089e1a9a0c0f02ebc0df5401aa 100644
--- a/openair3/NAS/UE/ESM/EsmStatusHdl.c
+++ b/openair3/NAS/UE/ESM/EsmStatusHdl.c
@@ -176,7 +176,7 @@ int esm_proc_status(nas_user_t *user, int is_standalone,
    * Notity EMM that ESM PDU has to be forwarded to lower layers
    */
   emm_sap.primitive = EMMESM_UNITDATA_REQ;
-  emm_sap.u.emm_esm.ueid = 0;
+  emm_sap.u.emm_esm.ueid = user->ueid;
   emm_sap.u.emm_esm.u.data.msg.length = msg->length;
   emm_sap.u.emm_esm.u.data.msg.value = msg->value;
   rc = emm_sap_send(user, &emm_sap);
diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c
index 15ec49b2d029e81a8f5983272380f7a9a53cc60a..c51d08cdbc289032cddc18d597d95f67da1cd373 100644
--- a/openair3/NAS/UE/ESM/PdnConnectivity.c
+++ b/openair3/NAS/UE/ESM/PdnConnectivity.c
@@ -296,7 +296,7 @@ int esm_proc_pdn_connectivity_request(nas_user_t *user, int is_standalone, int p
      * Notity EMM that ESM PDU has to be forwarded to lower layers
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = msg->length;
     emm_esm->msg.value = msg->value;
     rc = emm_sap_send(user, &emm_sap);
@@ -631,7 +631,7 @@ static void *_pdn_connectivity_t3482_handler(void *args)
      * has to be sent again
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = data->msg.length;
     emm_esm->msg.value = data->msg.value;
     rc = emm_sap_send(user, &emm_sap);
diff --git a/openair3/NAS/UE/ESM/PdnDisconnect.c b/openair3/NAS/UE/ESM/PdnDisconnect.c
index 445c0a6c34fc505ba9aeeb8bb32efdfb3082fdce..4b5c0f06e5b0bfe14d7cae3613c3393ea7350e5e 100644
--- a/openair3/NAS/UE/ESM/PdnDisconnect.c
+++ b/openair3/NAS/UE/ESM/PdnDisconnect.c
@@ -183,7 +183,7 @@ int esm_proc_pdn_disconnect_request(nas_user_t *user, int is_standalone, int pti
      * Notity EMM that ESM PDU has to be forwarded to lower layers
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = msg->length;
     emm_esm->msg.value = msg->value;
     rc = emm_sap_send(user, &emm_sap);
@@ -402,7 +402,7 @@ static void *_pdn_disconnect_t3492_handler(void *args)
      * has to be sent again
      */
     emm_sap.primitive = EMMESM_UNITDATA_REQ;
-    emm_sap.u.emm_esm.ueid = 0;
+    emm_sap.u.emm_esm.ueid = user->ueid;
     emm_esm->msg.length = data->msg.length;
     emm_esm->msg.value = data->msg.value;
     rc = emm_sap_send(user, &emm_sap);
diff --git a/openair3/NAS/UE/nas_proc.c b/openair3/NAS/UE/nas_proc.c
index b77e1123705a1c9e3e0fe523059eefb012e2044b..44d3201c4ad6b58a591b57c54358ca3f15d6ae6a 100644
--- a/openair3/NAS/UE/nas_proc.c
+++ b/openair3/NAS/UE/nas_proc.c
@@ -1185,7 +1185,7 @@ int nas_proc_ul_transfer_cnf(nas_user_t *user)
    * receiver side
    */
   emm_sap.primitive = EMMAS_DATA_IND;
-  emm_sap.u.emm_as.u.data.ueid = 0;
+  emm_sap.u.emm_as.u.data.ueid = user->ueid;
   emm_sap.u.emm_as.u.data.delivered = TRUE;
   emm_sap.u.emm_as.u.data.NASmsg.length = 0;
   rc = emm_sap_send(user, &emm_sap);
@@ -1222,7 +1222,7 @@ int nas_proc_ul_transfer_rej(nas_user_t *user)
    * from lower layers
    */
   emm_sap.primitive = EMMAS_DATA_IND;
-  emm_sap.u.emm_as.u.data.ueid = 0;
+  emm_sap.u.emm_as.u.data.ueid = user->ueid;
   emm_sap.u.emm_as.u.data.delivered = FALSE;
   emm_sap.u.emm_as.u.data.NASmsg.length = 0;
   rc = emm_sap_send(user, &emm_sap);
@@ -1259,7 +1259,7 @@ int nas_proc_dl_transfer_ind(nas_user_t *user, const Byte_t *data, uint32_t len)
      * indication has been received from the Access-Stratum sublayer
      */
     emm_sap.primitive = EMMAS_DATA_IND;
-    emm_sap.u.emm_as.u.data.ueid = 0;
+    emm_sap.u.emm_as.u.data.ueid = user->ueid;
     emm_sap.u.emm_as.u.data.delivered = TRUE;
     emm_sap.u.emm_as.u.data.NASmsg.length = len;
     emm_sap.u.emm_as.u.data.NASmsg.value = (uint8_t *)data;