diff --git a/openair3/NAS/UE/EMM/LowerLayer.c b/openair3/NAS/UE/EMM/LowerLayer.c
index ab1d5c6cf89443879c2abef5b304b5c3ea9903f6..2d67cf64173fac66046725e898d980e2bc09c20b 100644
--- a/openair3/NAS/UE/EMM/LowerLayer.c
+++ b/openair3/NAS/UE/EMM/LowerLayer.c
@@ -88,7 +88,6 @@ static struct {
  ** Description: Notify the EPS Mobility Management entity that data have  **
  **      been successfully delivered to the network                **
  **                                                                        **
- ** Inputs:  ueid:      UE lower layer identifier                  **
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
@@ -96,7 +95,7 @@ static struct {
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int lowerlayer_success(nas_user_t *user, unsigned int ueid)
+int lowerlayer_success(nas_user_t *user)
 {
   LOG_FUNC_IN;
 
@@ -104,7 +103,7 @@ int lowerlayer_success(nas_user_t *user, unsigned int ueid)
   int rc;
 
   emm_sap.primitive = EMMREG_LOWERLAYER_SUCCESS;
-  emm_sap.u.emm_reg.ueid = ueid;
+  emm_sap.u.emm_reg.ueid = user->ueid;
   rc = emm_sap_send(user, &emm_sap);
 
   LOG_FUNC_RETURN (rc);
@@ -117,7 +116,6 @@ int lowerlayer_success(nas_user_t *user, unsigned int ueid)
  ** Description: Notify the EPS Mobility Management entity that lower la-  **
  **      yers failed to deliver data to the network                **
  **                                                                        **
- ** Inputs:  ueid:      UE lower layer identifier                  **
  **      Others:    None                                       **
  **                                                                        **
  ** Outputs:     None                                                      **
@@ -125,7 +123,7 @@ int lowerlayer_success(nas_user_t *user, unsigned int ueid)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int lowerlayer_failure(nas_user_t *user, unsigned int ueid)
+int lowerlayer_failure(nas_user_t *user)
 {
   LOG_FUNC_IN;
 
@@ -133,7 +131,7 @@ int lowerlayer_failure(nas_user_t *user, unsigned int ueid)
   int rc;
 
   emm_sap.primitive = EMMREG_LOWERLAYER_FAILURE;
-  emm_sap.u.emm_reg.ueid = ueid;
+  emm_sap.u.emm_reg.ueid = user->ueid;
   rc = emm_sap_send(user, &emm_sap);
 
   LOG_FUNC_RETURN (rc);
@@ -191,7 +189,7 @@ int lowerlayer_release(nas_user_t *user, int cause)
   user->emm_data->ecm_status = ECM_IDLE;
 
   emm_sap.primitive = EMMREG_LOWERLAYER_RELEASE;
-  emm_sap.u.emm_reg.ueid = 0;
+  emm_sap.u.emm_reg.ueid = user->ueid;
   rc = emm_sap_send(user, &emm_sap);
 
   LOG_FUNC_RETURN (rc);
@@ -204,7 +202,6 @@ int lowerlayer_release(nas_user_t *user, int cause)
  ** Description: Notify the EPS Session Management entity that data have   **
  **      been received from lower layers                           **
  **                                                                        **
- ** Inputs:  ueid:      UE lower layer identifier                  **
  **      data:      Data transfered from lower layers          **
  **      Others:    None                                       **
  **                                                                        **
@@ -213,7 +210,7 @@ int lowerlayer_release(nas_user_t *user, int cause)
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *data)
+int lowerlayer_data_ind(nas_user_t *user, const OctetString *data)
 {
   esm_sap_t esm_sap;
   int rc;
@@ -223,7 +220,7 @@ int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *
 
   esm_sap.primitive = ESM_UNITDATA_IND;
   esm_sap.is_standalone = TRUE;
-  esm_sap.ueid = ueid;
+  esm_sap.ueid = user->ueid;
 
   esm_sap.recv = data;
   rc = esm_sap_send(user, &esm_sap);
@@ -238,7 +235,6 @@ int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *
  ** Description: Notify the EPS Mobility Management entity that data have  **
  **      to be transfered to lower layers                          **
  **                                                                        **
- ** Inputs:  ueid:      UE lower layer identifier                  **
  **          data:      Data to be transfered to lower layers      **
  **      Others:    None                                       **
  **                                                                        **
@@ -247,7 +243,7 @@ int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *
  **      Others:    None                                       **
  **                                                                        **
  ***************************************************************************/
-int lowerlayer_data_req(nas_user_t *user, unsigned int ueid, const OctetString *data)
+int lowerlayer_data_req(nas_user_t *user, const OctetString *data)
 {
   LOG_FUNC_IN;
 
@@ -258,7 +254,7 @@ int lowerlayer_data_req(nas_user_t *user, unsigned int ueid, const OctetString *
 
   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;
   sctx = user->emm_data->security;
 
   emm_sap.u.emm_as.u.data.NASinfo = 0;
diff --git a/openair3/NAS/UE/EMM/LowerLayer.h b/openair3/NAS/UE/EMM/LowerLayer.h
index 85229de6866b40bb01bb56f90e470a3e64110a01..019803936ca610102b4fc5480520602ef5490814 100644
--- a/openair3/NAS/UE/EMM/LowerLayer.h
+++ b/openair3/NAS/UE/EMM/LowerLayer.h
@@ -79,13 +79,12 @@ typedef int (*lowerlayer_release_callback_t)(void *);
 /******************  E X P O R T E D    F U N C T I O N S  ******************/
 /****************************************************************************/
 
-// FIXME prototype with ueid
-int lowerlayer_success(nas_user_t *user, unsigned int ueid);
-int lowerlayer_failure(nas_user_t *user, unsigned int ueid);
+int lowerlayer_success(nas_user_t *user);
+int lowerlayer_failure(nas_user_t *user);
 int lowerlayer_establish(nas_user_t *user);
 int lowerlayer_release(nas_user_t *user, int cause);
 
-int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *data);
-int lowerlayer_data_req(nas_user_t *user, unsigned int ueid, const OctetString *data);
+int lowerlayer_data_ind(nas_user_t *user, const OctetString *data);
+int lowerlayer_data_req(nas_user_t *user, const OctetString *data);
 
 #endif /* __LOWERLAYER_H__*/
diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c
index 8c26b4281897d30632f0d6183c63bf72e1662c0b..49668d61ab500368b8cf8fa662f349039410421e 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_as.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_as.c
@@ -446,18 +446,18 @@ static int _emm_as_data_ind(nas_user_t *user, const emm_as_data_t *msg, int *emm
                    EPS_SESSION_MANAGEMENT_MESSAGE) {
           const OctetString data = {bytes, (uint8_t *)plain_msg};
           /* Foward ESM data to EPS session management */
-          rc = lowerlayer_data_ind(user, msg->ueid, &data);
+          rc = lowerlayer_data_ind(user, &data);
         }
 
         free(plain_msg);
       }
     } else {
       /* Process successfull lower layer transfer indication */
-      rc = lowerlayer_success(user, msg->ueid);
+      rc = lowerlayer_success(user);
     }
   } else {
     /* Process lower layer transmission failure of NAS message */
-    rc = lowerlayer_failure(user, msg->ueid);
+    rc = lowerlayer_failure(user);
   }
 
   LOG_FUNC_RETURN (rc);
@@ -496,7 +496,7 @@ static int _emm_as_establish_cnf(nas_user_t *user, const emm_as_establish_t *msg
   } else {
     /* The initial NAS message has been successfully delivered to
      * lower layers */
-    rc = lowerlayer_success(user, 0);
+    rc = lowerlayer_success(user);
     LOG_FUNC_RETURN (rc);
   }
 
@@ -571,7 +571,7 @@ static int _emm_as_establish_rej(nas_user_t *user)
             "failure");
 
   /* Process lower layer transmission failure of initial NAS message */
-  rc = lowerlayer_failure(user, 0);
+  rc = lowerlayer_failure(user);
 
   LOG_FUNC_RETURN (rc);
 }
diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.c b/openair3/NAS/UE/EMM/SAP/emm_esm.c
index b3a494ad49b5addc665917d78b7f607b47ca42fd..798e682b112c09f7d54ccebcb4b7dc6fec0492a9 100644
--- a/openair3/NAS/UE/EMM/SAP/emm_esm.c
+++ b/openair3/NAS/UE/EMM/SAP/emm_esm.c
@@ -149,7 +149,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg)
 
   case _EMMESM_UNITDATA_REQ:
     /* ESM requests EMM to transfer ESM data unit to lower layer */
-    rc = lowerlayer_data_req(user, msg->ueid, &msg->u.data.msg);
+    rc = lowerlayer_data_req(user, &msg->u.data.msg);
     break;
 
   default:
diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c
index 53b0520933de9f771ad9bdb3302f56e52944e54c..2b4112344636c5501d7d055d1c6b70f4aead0c2b 100644
--- a/openair3/NAS/UE/nas_ue_task.c
+++ b/openair3/NAS/UE/nas_ue_task.c
@@ -71,6 +71,7 @@ void *nas_ue_task(void *args_p)
   nas_user_t user_value = {};
   nas_user_t *user = &user_value;
 
+  user->ueid = 0;
 
   itti_mark_task_ready (TASK_NAS_UE);
   MSC_START_USE();
diff --git a/openair3/NAS/UE/user_defs.h b/openair3/NAS/UE/user_defs.h
index c92a5a938822026a327511574b686e1075305a02..a30e13663a1143b29d26f12734dd078d60da1755 100644
--- a/openair3/NAS/UE/user_defs.h
+++ b/openair3/NAS/UE/user_defs.h
@@ -59,6 +59,7 @@ Description NAS type definition to manage a user equipment
 #include "at_response.h"
 
 typedef struct {
+  int ueid; /* UE lower layer identifier */
   int fd;
   proc_data_t proc;
   // Eps Session Management