diff --git a/targets/RT/USER/rrh.c b/targets/RT/USER/rrh.c
index 8407e019af8e34b50d2e5619afbca608f12e9d0d..1e7d9c8f27042321ffeb2b65694a909a0933c306 100644
--- a/targets/RT/USER/rrh.c
+++ b/targets/RT/USER/rrh.c
@@ -72,12 +72,13 @@ void *rrh_eNB_thread(void *arg) {
   int16_t cmd,nsamps,antenna_index;
   ssize_t bytes_received;
   openair0_timestamp timestamp_tx,timestamp_rx=0;
-  int local_host = 0;
+  ssize_t bytes_sent;
+
 
   while (rrh_exit==0) {
 
     
-    sockid=socket(AF_INET,SOCK_DGRAM,0);
+    sockid=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
     if (sockid==-1) {
       perror("Cannot create socket: ");
       rrh_exit=1;
@@ -87,7 +88,7 @@ void *rrh_eNB_thread(void *arg) {
     bzero((char *)&serveraddr,sizeof(serveraddr));
     serveraddr.sin_family=AF_INET;
     serveraddr.sin_port=htons(rrh_desc->port);
-    inet_pton(AF_INET,"127.0.0.1",&serveraddr.sin_addr.s_addr);
+    inet_pton(AF_INET,"0.0.0.0",&serveraddr.sin_addr.s_addr);
 
     inet_ntop(AF_INET, &(serveraddr.sin_addr), str, INET_ADDRSTRLEN);      
     printf("Binding to socket for %s:%d\n",str,ntohs(serveraddr.sin_port));
@@ -101,6 +102,9 @@ void *rrh_eNB_thread(void *arg) {
     while (rrh_exit==0) {
 
       // get header info
+      bzero((void*)&clientaddr,sizeof(struct sockaddr));
+      clientaddrlen = sizeof(struct sockaddr);
+
       bytes_received = recvfrom(sockid,msg_header,4+sizeof(openair0_timestamp),0,&clientaddr,&clientaddrlen);
       cmd = msg_header[0];
       antenna_index = cmd>>1;
@@ -108,22 +112,21 @@ void *rrh_eNB_thread(void *arg) {
       nsamps = *(int16_t *)(msg_header+2);
       cmd = cmd&1;
       inet_ntop(AF_INET, &(((struct sockaddr_in*)&clientaddr)->sin_addr), str, INET_ADDRSTRLEN);
-      if ((((struct sockaddr_in*)&clientaddr)->sin_addr.s_addr) == 0) local_host = 1;
-      else local_host = 0;
 
       switch (cmd) {
       case 0: // RX
-	printf("Received RX request for antenna %d, nsamps %d (from %s:%d)\n",antenna_index,nsamps,str, 
-	       ntohs(((struct sockaddr_in*)&clientaddr)->sin_port),INET_ADDRSTRLEN);
+	//	printf("Received RX request for antenna %d, nsamps %d (from %s:%d)\n",antenna_index,nsamps,str, 
+	//	       ntohs(((struct sockaddr_in*)&clientaddr)->sin_port));
 	// send return
 	
-	if (sendto(sockid, 
-		   &rx_buffer[antenna_index][timestamp_rx%(76800*4)],
-		   (nsamps<<2)+sizeof(openair0_timestamp), 
-		   MSG_DONTWAIT, 
-		   (local_host == 0) ? &clientaddr : (struct sockaddr*)&serveraddr, 
-		   sizeof(struct sockaddr))<0)
+	if ((bytes_sent = sendto(sockid, 
+				&rx_buffer[antenna_index][timestamp_rx%(76800*4)],
+				(nsamps<<2)+sizeof(openair0_timestamp), 
+				0,
+				(struct sockaddr*)&clientaddr, 
+				sizeof(struct sockaddr)))<0)
 	  perror("RRH: sendto for RX");
+	//	printf("bytes_sent %d(timestamp_rx %d)\n",bytes_sent);
 	timestamp_rx+=nsamps;
 	break;
       case 1: // TX
@@ -132,6 +135,7 @@ void *rrh_eNB_thread(void *arg) {
 	printf("Received TX samples for antenna %d, nsamps %d (%d)\n",antenna_index,nsamps,(bytes_received>>2));
 	break;
       }
+      //      rrh_exit = 1;
     }
   }