diff --git a/common/utils/LOG/log.c b/common/utils/LOG/log.c
index 02ee849202e285aeb936312a12b754ae6f21b19f..b40f4ebb5c0387d3573d1455d167fcbec59670d5 100644
--- a/common/utils/LOG/log.c
+++ b/common/utils/LOG/log.c
@@ -418,6 +418,7 @@ int logInit (void)
 
 
   register_log_component("S1AP","",S1AP);
+  register_log_component("X2AP","",X2AP);
 
 
   register_log_component("SCTP","",SCTP);
diff --git a/openair2/COMMON/sctp_messages_def.h b/openair2/COMMON/sctp_messages_def.h
index 4975f14d76f7e47a7fcef47bc8bfb908997b52dc..a7feb52a320a1efa211eca6cebfe29683f2cbe8a 100644
--- a/openair2/COMMON/sctp_messages_def.h
+++ b/openair2/COMMON/sctp_messages_def.h
@@ -19,13 +19,14 @@
  *      contact@openairinterface.org
  */
 
-MESSAGE_DEF(SCTP_NEW_ASSOCIATION_REQ ,      MESSAGE_PRIORITY_MED, sctp_new_association_req_t          , sctp_new_association_req)
-MESSAGE_DEF(SCTP_NEW_ASSOCIATION_REQ_MULTI, MESSAGE_PRIORITY_MED, sctp_new_association_req_t          , sctp_new_association_req_multi)
-MESSAGE_DEF(SCTP_NEW_ASSOCIATION_RESP,      MESSAGE_PRIORITY_MED, sctp_new_association_resp_t         , sctp_new_association_resp)
-MESSAGE_DEF(SCTP_NEW_ASSOCIATION_IND ,      MESSAGE_PRIORITY_MED, sctp_new_association_ind_t          , sctp_new_association_ind)
-MESSAGE_DEF(SCTP_REGISTER_UPPER_LAYER,      MESSAGE_PRIORITY_MED, sctp_listener_register_upper_layer_t, sctp_listener_register_upper_layer)
-MESSAGE_DEF(SCTP_DATA_REQ,                  MESSAGE_PRIORITY_MED, sctp_data_req_t                     , sctp_data_req)
-MESSAGE_DEF(SCTP_DATA_IND,                  MESSAGE_PRIORITY_MED, sctp_data_ind_t                     , sctp_data_ind)
-MESSAGE_DEF(SCTP_INIT_MSG,                  MESSAGE_PRIORITY_MED, sctp_init_t                         , sctp_init)
-MESSAGE_DEF(SCTP_INIT_MSG_MULTI,            MESSAGE_PRIORITY_MED, sctp_init_t                         , sctp_init_multi)
-MESSAGE_DEF(SCTP_CLOSE_ASSOCIATION,         MESSAGE_PRIORITY_MAX, sctp_close_association_t            , sctp_close_association)
+MESSAGE_DEF(SCTP_NEW_ASSOCIATION_REQ ,      MESSAGE_PRIORITY_MED, sctp_new_association_req_t           , sctp_new_association_req)
+MESSAGE_DEF(SCTP_NEW_ASSOCIATION_REQ_MULTI, MESSAGE_PRIORITY_MED, sctp_new_association_req_multi_t     , sctp_new_association_req_multi)
+MESSAGE_DEF(SCTP_NEW_ASSOCIATION_RESP,      MESSAGE_PRIORITY_MED, sctp_new_association_resp_t          , sctp_new_association_resp)
+MESSAGE_DEF(SCTP_NEW_ASSOCIATION_IND ,      MESSAGE_PRIORITY_MED, sctp_new_association_ind_t           , sctp_new_association_ind)
+MESSAGE_DEF(SCTP_REGISTER_UPPER_LAYER,      MESSAGE_PRIORITY_MED, sctp_listener_register_upper_layer_t , sctp_listener_register_upper_layer)
+MESSAGE_DEF(SCTP_DATA_REQ,                  MESSAGE_PRIORITY_MED, sctp_data_req_t                      , sctp_data_req)
+MESSAGE_DEF(SCTP_DATA_IND,                  MESSAGE_PRIORITY_MED, sctp_data_ind_t                      , sctp_data_ind)
+MESSAGE_DEF(SCTP_INIT_MSG,                  MESSAGE_PRIORITY_MED, sctp_init_t                          , sctp_init)
+MESSAGE_DEF(SCTP_INIT_MSG_MULTI_REQ,        MESSAGE_PRIORITY_MED, sctp_init_t                          , sctp_init_multi)
+MESSAGE_DEF(SCTP_INIT_MSG_MULTI_CNF,        MESSAGE_PRIORITY_MED, sctp_init_msg_multi_cnf_t            , sctp_init_msg_multi_cnf)
+MESSAGE_DEF(SCTP_CLOSE_ASSOCIATION,         MESSAGE_PRIORITY_MAX, sctp_close_association_t             , sctp_close_association)
diff --git a/openair2/COMMON/sctp_messages_types.h b/openair2/COMMON/sctp_messages_types.h
index 90081c02aa18d92a58f31963cf4d9b9c83c63d29..9e363c0d8d993890b9c58ba3384b2a6370c6d70f 100644
--- a/openair2/COMMON/sctp_messages_types.h
+++ b/openair2/COMMON/sctp_messages_types.h
@@ -29,7 +29,8 @@
 #define SCTP_DATA_IND(mSGpTR)                  (mSGpTR)->ittiMsg.sctp_data_ind
 #define SCTP_DATA_REQ(mSGpTR)                  (mSGpTR)->ittiMsg.sctp_data_req
 #define SCTP_INIT_MSG(mSGpTR)                  (mSGpTR)->ittiMsg.sctp_init
-#define SCTP_INIT_MSG_MULTI(mSGpTR)            (mSGpTR)->ittiMsg.sctp_init_multi
+#define SCTP_INIT_MSG_MULTI_REQ(mSGpTR)        (mSGpTR)->ittiMsg.sctp_init_multi
+#define SCTP_INIT_MSG_MULTI_CNF(mSGpTR)        (mSGpTR)->ittiMsg.sctp_init_msg_multi_cnf
 #define SCTP_CLOSE_ASSOCIATION(mSGpTR)         (mSGpTR)->ittiMsg.sctp_close_association
 
 enum sctp_state_e {
@@ -58,6 +59,32 @@ typedef struct sctp_new_association_req_s {
   net_ip_address_t remote_address;
 } sctp_new_association_req_t;
 
+typedef struct sctp_new_association_req_multi_s {
+  /* Upper layer connexion identifier */
+  uint16_t         ulp_cnx_id;
+
+  /* The port to connect to */
+  uint16_t         port;
+  /* Payload Protocol Identifier to use */
+  uint32_t         ppid;
+
+  /* Number of streams used for this association */
+  uint16_t in_streams;
+  uint16_t out_streams;
+
+  /* Local address to bind to */
+  net_ip_address_t local_address;
+  /* Remote address to connect to */
+  net_ip_address_t remote_address;
+
+  /* Multi-socket descriptor */
+  int multi_sd;
+} sctp_new_association_req_multi_t;
+
+typedef struct sctp_init_msg_multi_cnf_s {
+  int multi_sd;
+} sctp_init_msg_multi_cnf_t;
+
 typedef struct sctp_new_association_ind_s {
   /* Assoc id of the new association */
   int32_t  assoc_id;
diff --git a/openair2/COMMON/x2ap_messages_def.h b/openair2/COMMON/x2ap_messages_def.h
index 36842c13d0cef7a55aa36739a0d3dcddd2fad348..d5555c183989b4573501e005620fba7b57302787 100644
--- a/openair2/COMMON/x2ap_messages_def.h
+++ b/openair2/COMMON/x2ap_messages_def.h
@@ -22,21 +22,21 @@
 /* eNB application layer -> X2AP messages */
 /* ITTI LOG messages */
 /* ENCODER */
-MESSAGE_DEF(X2AP_RESET_REQUST_LOG             , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_reset_request_log)
-MESSAGE_DEF(X2AP_RESOURCE_STATUS_RESPONSE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_resource_status_response_log)
-MESSAGE_DEF(X2AP_RESOURCE_STATUS_FAILURE_LOG , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_resource_status_failure_log)
+MESSAGE_DEF(X2AP_RESET_REQUST_LOG               , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_reset_request_log)
+MESSAGE_DEF(X2AP_RESOURCE_STATUS_RESPONSE_LOG   , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_resource_status_response_log)
+MESSAGE_DEF(X2AP_RESOURCE_STATUS_FAILURE_LOG    , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_resource_status_failure_log)
 
 /* Messages for X2AP logging */
-MESSAGE_DEF(X2AP_SETUP_REQUEST_LOG           , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_setup_request_log)
+MESSAGE_DEF(X2AP_SETUP_REQUEST_LOG              , MESSAGE_PRIORITY_MED, IttiMsgText                      , x2ap_setup_request_log)
 
 
 /* eNB application layer -> X2AP messages */
-MESSAGE_DEF(X2AP_REGISTER_ENB_REQ          , MESSAGE_PRIORITY_MED, x2ap_register_enb_req_t          , x2ap_register_enb_req)
+MESSAGE_DEF(X2AP_REGISTER_ENB_REQ               , MESSAGE_PRIORITY_MED, x2ap_register_enb_req_t          , x2ap_register_enb_req)
 
 /* X2AP -> eNB application layer messages */
-MESSAGE_DEF(X2AP_REGISTER_ENB_CNF          , MESSAGE_PRIORITY_MED, x2ap_register_enb_cnf_t          , x2ap_register_enb_cnf)
-MESSAGE_DEF(X2AP_DEREGISTERED_ENB_IND      , MESSAGE_PRIORITY_MED, x2ap_deregistered_enb_ind_t      , x2ap_deregistered_enb_ind)
+MESSAGE_DEF(X2AP_REGISTER_ENB_CNF               , MESSAGE_PRIORITY_MED, x2ap_register_enb_cnf_t          , x2ap_register_enb_cnf)
+MESSAGE_DEF(X2AP_DEREGISTERED_ENB_IND           , MESSAGE_PRIORITY_MED, x2ap_deregistered_enb_ind_t      , x2ap_deregistered_enb_ind)
 
 /* handover messages X2AP <-> RRC */
-MESSAGE_DEF(X2AP_HANDOVER_REQ              , MESSAGE_PRIORITY_MED, x2ap_handover_req_t              , x2ap_handover_req)
-MESSAGE_DEF(X2AP_HANDOVER_REQ_ACK          , MESSAGE_PRIORITY_MED, x2ap_handover_req_ack_t          , x2ap_handover_req_ack)
+MESSAGE_DEF(X2AP_HANDOVER_REQ                   , MESSAGE_PRIORITY_MED, x2ap_handover_req_t              , x2ap_handover_req)
+MESSAGE_DEF(X2AP_HANDOVER_REQ_ACK               , MESSAGE_PRIORITY_MED, x2ap_handover_req_ack_t          , x2ap_handover_req_ack)
diff --git a/openair2/X2AP/x2ap_eNB.c b/openair2/X2AP/x2ap_eNB.c
index 016fa1f4191479cf4790080aed1cc511b857eb58..4f23b5ddfee1369ee5ae41106519f5669c62f528 100644
--- a/openair2/X2AP/x2ap_eNB.c
+++ b/openair2/X2AP/x2ap_eNB.c
@@ -60,11 +60,8 @@ void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p,
                            net_ip_address_t    *local_ip_addr,
                            uint16_t             in_streams,
                            uint16_t             out_streams,
-                           uint32_t             enb_port_for_X2C);
-
-static
-void x2ap_eNB_handle_sctp_association_resp(instance_t instance,
-                                           sctp_new_association_resp_t *sctp_new_association_resp);
+                           uint32_t             enb_port_for_X2C,
+                           int                  multi_sd);
 
 /*
 static
@@ -209,7 +206,7 @@ int x2ap_eNB_init_sctp (x2ap_eNB_instance_t *instance_p,
   DevAssert(instance_p != NULL);
   DevAssert(local_ip_addr != NULL);
 
-  message = itti_alloc_new_message (TASK_X2AP, SCTP_INIT_MSG_MULTI);
+  message = itti_alloc_new_message (TASK_X2AP, SCTP_INIT_MSG_MULTI_REQ);
   sctp_init = &message->ittiMsg.sctp_init_multi;
 
   sctp_init->port = enb_port_for_X2C;
@@ -240,12 +237,13 @@ static void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p,
                                   net_ip_address_t    *local_ip_addr,
                                   uint16_t             in_streams,
                                   uint16_t             out_streams,
-				  uint32_t	       enb_port_for_X2C)
+				  uint32_t	       enb_port_for_X2C,
+                                  int                  multi_sd)
 {
 
-  MessageDef                 *message                   = NULL;
-  sctp_new_association_req_t *sctp_new_association_req  = NULL;
-  x2ap_eNB_data_t            *x2ap_enb_data             = NULL;
+  MessageDef                       *message                   = NULL;
+  sctp_new_association_req_multi_t *sctp_new_association_req  = NULL;
+  x2ap_eNB_data_t                  *x2ap_enb_data             = NULL;
 
   DevAssert(instance_p != NULL);
   DevAssert(target_eNB_ip_address != NULL);
@@ -260,6 +258,8 @@ static void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p,
   sctp_new_association_req->in_streams  = in_streams;
   sctp_new_association_req->out_streams = out_streams;
 
+  sctp_new_association_req->multi_sd = multi_sd;
+
   memcpy(&sctp_new_association_req->remote_address,
          target_eNB_ip_address,
          sizeof(*target_eNB_ip_address));
@@ -293,9 +293,7 @@ static
 void x2ap_eNB_handle_register_eNB(instance_t instance,
 				  x2ap_register_enb_req_t *x2ap_register_eNB)
 {
-
   x2ap_eNB_instance_t *new_instance;
-  uint8_t index;
 
   DevAssert(x2ap_register_eNB != NULL);
 
@@ -309,7 +307,7 @@ void x2ap_eNB_handle_register_eNB(instance_t instance,
     DevCheck(new_instance->tac == x2ap_register_eNB->tac, new_instance->tac, x2ap_register_eNB->tac, 0);
     DevCheck(new_instance->mcc == x2ap_register_eNB->mcc, new_instance->mcc, x2ap_register_eNB->mcc, 0);
     DevCheck(new_instance->mnc == x2ap_register_eNB->mnc, new_instance->mnc, x2ap_register_eNB->mnc, 0);
-
+    X2AP_WARN("eNB[%d] already registered\n", instance);
   }
   else {
     new_instance = calloc(1, sizeof(x2ap_eNB_instance_t));
@@ -327,6 +325,18 @@ void x2ap_eNB_handle_register_eNB(instance_t instance,
     new_instance->mnc              = x2ap_register_eNB->mnc;
     new_instance->mnc_digit_length = x2ap_register_eNB->mnc_digit_length;
 
+    DevCheck(x2ap_register_eNB->nb_x2 <= X2AP_MAX_NB_ENB_IP_ADDRESS,
+             X2AP_MAX_NB_ENB_IP_ADDRESS, x2ap_register_eNB->nb_x2, 0);
+    memcpy(new_instance->target_enb_x2_ip_address,
+           x2ap_register_eNB->target_enb_x2_ip_address,
+           x2ap_register_eNB->nb_x2 * sizeof(net_ip_address_t));
+
+    new_instance->nb_x2             = x2ap_register_eNB->nb_x2;
+    new_instance->enb_x2_ip_address = x2ap_register_eNB->enb_x2_ip_address;
+    new_instance->sctp_in_streams   = x2ap_register_eNB->sctp_in_streams;
+    new_instance->sctp_out_streams  = x2ap_register_eNB->sctp_out_streams;
+    new_instance->enb_port_for_X2C  = x2ap_register_eNB->enb_port_for_X2C;
+
     /* Add the new instance to the list of eNB (meaningfull in virtual mode) */
     x2ap_eNB_insert_new_instance(new_instance);
 
@@ -342,24 +352,41 @@ void x2ap_eNB_handle_register_eNB(instance_t instance,
       X2AP_INFO("eNB[%d] eNB id %u acting as a listner (server)\n",
                 instance, x2ap_register_eNB->eNB_id);
   }
+}
 
-  DevCheck(x2ap_register_eNB->nb_x2 <= X2AP_MAX_NB_ENB_IP_ADDRESS,
-           X2AP_MAX_NB_ENB_IP_ADDRESS, x2ap_register_eNB->nb_x2, 0);
+static
+void x2ap_eNB_handle_sctp_init_msg_multi_cnf(
+        instance_t instance_id,
+        sctp_init_msg_multi_cnf_t *m)
+{
+  x2ap_eNB_instance_t *instance;
+  int index;
+
+  DevAssert(m != NULL);
+
+  instance = x2ap_eNB_get_instance(instance_id);
+  DevAssert(instance != NULL);
+
+  instance->multi_sd = m->multi_sd;
+  /* Exit if CNF message reports failure.
+   * Failure means multi_sd < 0.
+   */
+  DevAssert(instance->multi_sd >= 0);
 
   /* Trying to connect to the provided list of eNB ip address */
 
-  for (index = 0; index < x2ap_register_eNB->nb_x2; index++) {
+  for (index = 0; index < instance->nb_x2; index++) {
 
       X2AP_INFO("eNB[%d] eNB id %u acting as an initiator (client)\n",
-		instance, x2ap_register_eNB->eNB_id);
-      x2ap_eNB_register_eNB(new_instance,
-			    &x2ap_register_eNB->target_enb_x2_ip_address[index],
-			    &x2ap_register_eNB->enb_x2_ip_address,
-			    x2ap_register_eNB->sctp_in_streams,
-			    x2ap_register_eNB->sctp_out_streams,
-                            x2ap_register_eNB->enb_port_for_X2C);
+                instance_id, instance->eNB_id);
+      x2ap_eNB_register_eNB(instance,
+                            &instance->target_enb_x2_ip_address[index],
+                            &instance->enb_x2_ip_address,
+                            instance->sctp_in_streams,
+                            instance->sctp_out_streams,
+                            instance->enb_port_for_X2C,
+                            instance->multi_sd);
   }
-
 }
 
 void *x2ap_task(void *arg)
@@ -386,6 +413,11 @@ void *x2ap_task(void *arg)
                                    &X2AP_REGISTER_ENB_REQ(received_msg));
       break;
 
+    case SCTP_INIT_MSG_MULTI_CNF:
+      x2ap_eNB_handle_sctp_init_msg_multi_cnf(ITTI_MESSAGE_GET_INSTANCE(received_msg),
+                                              &received_msg->ittiMsg.sctp_init_msg_multi_cnf);
+      break;
+
     case SCTP_NEW_ASSOCIATION_RESP:
       x2ap_eNB_handle_sctp_association_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg),
 					    &received_msg->ittiMsg.sctp_new_association_resp);
diff --git a/openair2/X2AP/x2ap_eNB_defs.h b/openair2/X2AP/x2ap_eNB_defs.h
index 7869b497c357e0ed9178471b61e9ab39f8be9712..11b4434dc0ae5c1146aff0faa151d18664c8f779 100644
--- a/openair2/X2AP/x2ap_eNB_defs.h
+++ b/openair2/X2AP/x2ap_eNB_defs.h
@@ -151,7 +151,13 @@ typedef struct x2ap_eNB_instance_s {
   uint16_t  mnc;
   uint8_t   mnc_digit_length;
 
- 
+  net_ip_address_t target_enb_x2_ip_address[X2AP_MAX_NB_ENB_IP_ADDRESS];
+  uint8_t          nb_x2;
+  net_ip_address_t enb_x2_ip_address;
+  uint16_t         sctp_in_streams;
+  uint16_t         sctp_out_streams;
+  uint32_t         enb_port_for_X2C;
+  int              multi_sd;
 } x2ap_eNB_instance_t;
 
 typedef struct {
diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.c b/openair3/SCTP/sctp_eNB_itti_messaging.c
index 3517c0597bb54bcba72bdcbdb680ebf21ef03d0d..d2064c74c08671b215bbca98525ca9b58be91d47 100644
--- a/openair3/SCTP/sctp_eNB_itti_messaging.c
+++ b/openair3/SCTP/sctp_eNB_itti_messaging.c
@@ -24,6 +24,20 @@
 #include "sctp_common.h"
 #include "sctp_eNB_itti_messaging.h"
 
+int sctp_itti_send_init_msg_multi_cnf(task_id_t task_id, instance_t instance, int multi_sd)
+{
+  MessageDef      *message_p;
+  sctp_init_msg_multi_cnf_t *sctp_init_msg_multi_cnf_p;
+
+  message_p = itti_alloc_new_message(TASK_SCTP, SCTP_INIT_MSG_MULTI_CNF);
+
+  sctp_init_msg_multi_cnf_p = &message_p->ittiMsg.sctp_init_msg_multi_cnf;
+
+  sctp_init_msg_multi_cnf_p->multi_sd = multi_sd;
+
+  return itti_send_msg_to_task(task_id, instance, message_p);
+}
+
 int sctp_itti_send_new_message_ind(task_id_t task_id, uint32_t assoc_id, uint8_t *buffer,
                                    uint32_t buffer_length, uint16_t stream)
 {
diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.h b/openair3/SCTP/sctp_eNB_itti_messaging.h
index 665c5f0e663ed111f1ea9abcfedc89353e872f9a..49d2056a3cc254975c18fe469554d50d07bd8379 100644
--- a/openair3/SCTP/sctp_eNB_itti_messaging.h
+++ b/openair3/SCTP/sctp_eNB_itti_messaging.h
@@ -22,6 +22,8 @@
 #ifndef SCTP_ITTI_MESSAGING_H_
 #define SCTP_ITTI_MESSAGING_H_
 
+int sctp_itti_send_init_msg_multi_cnf(task_id_t task_id, instance_t instance, int multi_sd);
+
 int sctp_itti_send_new_message_ind(task_id_t task_id, uint32_t assoc_id, uint8_t *buffer,
                                    uint32_t buffer_length, uint16_t stream);
 
diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c
index 998ea9589c41993988fb52455ede4ac77f2ef6e5..6071b0da13d090babb3056c60371228cc207f0de 100644
--- a/openair3/SCTP/sctp_eNB_task.c
+++ b/openair3/SCTP/sctp_eNB_task.c
@@ -220,10 +220,10 @@ void
 sctp_handle_new_association_req_multi(
   const instance_t instance,
   const task_id_t requestor,
-  const sctp_new_association_req_t * const sctp_new_association_req_p,
-  int   sd)
+  const sctp_new_association_req_multi_t * const sctp_new_association_req_p)
 {
   int                           ns;
+  int sd;
 
   int32_t                       assoc_id = 0;
 
@@ -235,6 +235,8 @@ sctp_handle_new_association_req_multi(
    */
   DevAssert(sctp_new_association_req_p != NULL);
 
+  sd = sctp_new_association_req_p->multi_sd;
+
   /* Create new socket with IPv6 affinity */
 //#warning "SCTP may Force IPv4 only, here"
 
@@ -265,8 +267,9 @@ sctp_handle_new_association_req_multi(
         SCTP_ERROR("Failed to convert ipv6 address %*s to network type\n",
                    (int)strlen(sctp_new_association_req_p->remote_address.ipv6_address),
                    sctp_new_association_req_p->remote_address.ipv6_address);
-        close(sd);
-        return;
+        //close(sd);
+        //return;
+        exit(1);
       }
 
       SCTP_DEBUG("Converted ipv6 address %*s to network type\n",
@@ -284,8 +287,9 @@ sctp_handle_new_association_req_multi(
         SCTP_ERROR("Failed to convert ipv4 address %*s to network type\n",
                    (int)strlen(sctp_new_association_req_p->remote_address.ipv4_address),
                    sctp_new_association_req_p->remote_address.ipv4_address);
-        close(sd);
-        return;
+        //close(sd);
+        //return;
+        exit(1);
       }
 
       SCTP_DEBUG("Converted ipv4 address %*s to network type\n",
@@ -307,7 +311,7 @@ sctp_handle_new_association_req_multi(
           SCTP_STATE_UNREACHABLE, 0, 0);
         /* Add the socket to list of fd monitored by ITTI */
         //itti_unsubscribe_event_fd(TASK_SCTP, sd);
-        close(sd);
+        //close(sd);
         return;
       } else {
         SCTP_DEBUG("connectx assoc_id  %d in progress..., used %d addresses\n",
@@ -1043,7 +1047,6 @@ void *sctp_eNB_task(void *arg)
   struct epoll_event *events;
   MessageDef         *received_msg = NULL;
   int                 result;
-  int                 multi_sd = -1;
 
   SCTP_DEBUG("Starting SCTP layer\n");
 
@@ -1072,8 +1075,10 @@ void *sctp_eNB_task(void *arg)
       }
       break;
 
-      case SCTP_INIT_MSG_MULTI: {
-        SCTP_DEBUG("Received SCTP_INIT_MSG_MULTI\n");
+      case SCTP_INIT_MSG_MULTI_REQ: {
+        int multi_sd;
+
+        SCTP_DEBUG("Received SCTP_INIT_MSG_MULTI_REQ\n");
 
         multi_sd = sctp_create_new_listener(
               ITTI_MESSAGE_GET_INSTANCE(received_msg),
@@ -1084,6 +1089,10 @@ void *sctp_eNB_task(void *arg)
           /* SCTP socket creation or bind failed... */
           SCTP_ERROR("Failed to create new SCTP listener\n");
         }
+        sctp_itti_send_init_msg_multi_cnf(
+                ITTI_MSG_ORIGIN_ID(received_msg),
+                ITTI_MESSAGE_GET_INSTANCE(received_msg),
+                multi_sd);
       }
       break;
 
@@ -1097,8 +1106,7 @@ void *sctp_eNB_task(void *arg)
       case SCTP_NEW_ASSOCIATION_REQ_MULTI: {
         sctp_handle_new_association_req_multi(ITTI_MESSAGE_GET_INSTANCE(received_msg),
                                         ITTI_MSG_ORIGIN_ID(received_msg),
-                                        &received_msg->ittiMsg.sctp_new_association_req_multi,
-                                        multi_sd);
+                                        &received_msg->ittiMsg.sctp_new_association_req_multi);
       }
       break;