diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
index ae5c540dc4efe2f9c4f0c0cce97d883d3a67511b..1b91050b9d5a07116822d3a31e23c8530104609e 100644
--- a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
+++ b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c
@@ -348,6 +348,10 @@ int ethernet_read_data(openair0_device *device,openair0_timestamp *timestamp,voi
   
 }
 
+int trx_eth_start(openair0_device *device){
+
+  return ethernet_socket_init(device);
+}
 
 int trx_eth_write(openair0_device *device, openair0_timestamp timestamp, void **buff, int nsamps, int antenna_id, int flags) {
   
@@ -394,6 +398,7 @@ int openair0_dev_init_eth(openair0_device *device, openair0_config_t *openair0_c
 
   printf("ETHERNET: Initializing openair0_device for %s ...\n", ((device->func_type == BBU_FUNC) ? "BBU": "RRH"));
   device->Mod_id           = num_devices++;
+  device->trx_start_func   = trx_eth_start;
   device->trx_request_func = trx_eth_request;
   device->trx_reply_func   = trx_eth_reply;
   device->trx_end_func     = trx_eth_end;
@@ -402,9 +407,9 @@ int openair0_dev_init_eth(openair0_device *device, openair0_config_t *openair0_c
   
   memcpy((void*)&device->openair0_cfg,(void*)openair0_cfg,sizeof(openair0_config_t));
 
-  if (ethernet_socket_init(device)!=0){
+  /*  if (ethernet_socket_init(device)!=0){
     return -1;
-  }
+    }*/ 
   
   return 0;
 }
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index 1f85ced28c9149dfc064c6d8e7fd89d9f71a71a8..e11abff45a2c81d0bea4a5648fc94d6e0a6172cd 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -2961,7 +2961,9 @@ openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL;
 #endif
   }
 
-
+  openair0.func_type = BBU_FUNC;
+  openair0_cfg[0].log_level = glog_level;
+  
 #ifdef ETHERNET 
   openair0.type=ETH_IF; // not used for the moment
   openair0_dev_init_eth(&openair0, &openair0_cfg[0]);
@@ -2976,10 +2978,7 @@ openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL;
   openair0.type=BLADERF_IF;	
   printf("Setting the HW to BLADERF and initializing openair0 ...\n");   
 #endif 
-  openair0.func_type = BBU_FUNC;
-  openair0_cfg[0].log_level = glog_level;
-
-
+ 
   if ((mode!=loop_through_memory) && 
       (openair0_device_init(&openair0, &openair0_cfg[0]) <0)) {
     printf("Exiting, cannot initialize device\n");
@@ -3307,7 +3306,9 @@ openair0_cfg[card].num_rb_dl=frame_parms[0]->N_RB_DL;
 #ifndef EXMIMO
 #ifndef USRP_DEBUG
   if (mode!=loop_through_memory)
-    openair0.trx_start_func(&openair0);//request_func(&openair0);
+    if (openair0.trx_start_func(&openair0) != 0 ) 
+      LOG_E(HW,"Could not start the device\n");
+
 #endif
 #endif