Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision a63ff7d60c21250216e5d285a45b3709130035c1)
+++ uspace/srv/net/tl/udp/udp.c	(revision 376a7fdad232fa7f9d8ab2dd18778d36701ea658)
@@ -626,16 +626,20 @@
 
 	// get the next received packet
-	packet_id = dyn_fifo_pop(&socket->received);
+	packet_id = dyn_fifo_value(&socket->received);
 	if (packet_id < 0)
 		return NO_DATA;
 	
 	rc = packet_translate_remote(udp_globals.net_phone, &packet, packet_id);
-	if (rc != EOK)
+	if (rc != EOK) {
+		(void) dyn_fifo_pop(&socket->received);
 		return rc;
+	}
 
 	// get udp header
 	data = packet_get_data(packet);
-	if (!data)
+	if (!data) {
+		(void) dyn_fifo_pop(&socket->received);
 		return udp_release_and_return(packet, NO_DATA);
+	}
 	header = (udp_header_ref) data;
 
@@ -643,22 +647,42 @@
 	result = packet_get_addr(packet, (uint8_t **) &addr, NULL);
 	rc = tl_set_address_port(addr, result, ntohs(header->source_port));
-	if (rc != EOK)
+	if (rc != EOK) {
+		(void) dyn_fifo_pop(&socket->received);
 		return udp_release_and_return(packet, rc);
+	}
 	*addrlen = (size_t) result;
 
 	// send the source address
 	rc = data_reply(addr, *addrlen);
-	if (rc != EOK)
+	switch (rc) {
+	case EOK:
+		break;
+	case EOVERFLOW:
+		return rc;
+	default:
+		(void) dyn_fifo_pop(&socket->received);
 		return udp_release_and_return(packet, rc);
+	}
 
 	// trim the header
 	rc = packet_trim(packet, UDP_HEADER_SIZE, 0);
-	if (rc != EOK)
+	if (rc != EOK) {
+		(void) dyn_fifo_pop(&socket->received);
 		return udp_release_and_return(packet, rc);
+	}
 
 	// reply the packets
 	rc = socket_reply_packets(packet, &length);
-	if (rc != EOK)
+	switch (rc) {
+	case EOK:
+		break;
+	case EOVERFLOW:
+		return rc;
+	default:
+		(void) dyn_fifo_pop(&socket->received);
 		return udp_release_and_return(packet, rc);
+	}
+
+	(void) dyn_fifo_pop(&socket->received);
 
 	// release the packet and return the total length
