diff --git a/radio/ETHERNET/USERSPACE/LIB/eth_udp.c b/radio/ETHERNET/USERSPACE/LIB/eth_udp.c
index 45cc75bd4d2c9a99d51a763e6399935fe862808a..31971f1d1adbf2a0e9eea538185b7d8f2ea5cd2c 100644
--- a/radio/ETHERNET/USERSPACE/LIB/eth_udp.c
+++ b/radio/ETHERNET/USERSPACE/LIB/eth_udp.c
@@ -447,10 +447,20 @@ void *udp_read_thread(void *arg) {
   while (oai_exit == 0) {
     LOG_I(PHY,"UDP read thread %d, waiting for start sampling_rate_d %d, sampling_rate_n %d\n",u->thread_id,device->sampling_rate_ratio_n,device->sampling_rate_ratio_d);
     while (fhstate->active > 0) {
-      size_t count = recvfrom(((eth_state_t*)device->priv)->sockfdd[0],
-                              buffer,sizeof(buffer),0,
-                              (struct sockaddr *)&((eth_state_t*)device->priv)->dest_addrd,
-                              (socklen_t *)&((eth_state_t*)device->priv)->addr_len);
+      ssize_t count = recvfrom(((eth_state_t*)device->priv)->sockfdd[0],
+                               buffer,sizeof(buffer),0,
+                               (struct sockaddr *)&((eth_state_t*)device->priv)->dest_addrd,
+                               (socklen_t *)&((eth_state_t*)device->priv)->addr_len);
+      /* log and skip processing in case of error from recvfrom */
+      /* (to be refined if needed) */
+      if (count == 0) {
+        LOG_E(PHY, "recvfrom returned 0\n");
+        continue;
+      }
+      if (count < 0) {
+        LOG_E(PHY, "recvfrom failed (%s)\n", strerror(errno));
+        continue;
+      }
       /* if oai_exit is 1 here, don't access the array rxbase,
        * it may have been freed(), so let's break at this point
        */
@@ -460,7 +470,6 @@ void *udp_read_thread(void *arg) {
       TS  = *(openair0_timestamp *)(&buffer[ECPRICOMMON_BYTES+ECPRIPCID_BYTES]);   
       // convert TS to samples, /6 for AW2S @ 30.72 Ms/s, this is converted for other sample rates in OAI application
       TS = (device->sampling_rate_ratio_n*TS)/(device->sampling_rate_ratio_d*6);
-      if ((int)count <= 0)  continue;
       AssertFatal(aid < 8,"Cannot handle more than 8 antennas, got aid %d\n",aid);
       fhstate->r[aid]=1;
       if (aid==0 && first_read == 0) fhstate->TS0 = TS;