Index: uspace/srv/net/udp/sock.c
===================================================================
--- uspace/srv/net/udp/sock.c	(revision 42fd4d2df67460081c2438495e0f8dee4f467239)
+++ uspace/srv/net/udp/sock.c	(revision be2bb4fffd12b3c1f21bcedf9d1a0ca6a5ef26b9)
@@ -289,5 +289,5 @@
 	    (udp_sockdata_t *) sock_core->specific_data;
 	
-	if ((sock_core->port == 0) || (sock_core->port == -1)) {
+	if (sock_core->port <= 0) {
 		/* Implicitly bind socket to port */
 		int rc = socket_bind_free_port(&gsock, sock_core,
@@ -299,4 +299,5 @@
 		
 		assert(sock_core->port > 0);
+		
 		udp_error_t urc = udp_uc_set_local_port(socket->assoc,
 		    sock_core->port);
@@ -307,4 +308,6 @@
 			goto out;
 		}
+		
+		last_used_port = sock_core->port;
 	}
 	
