Index: uspace/srv/net/socket/socket_client.c
===================================================================
--- uspace/srv/net/socket/socket_client.c	(revision 1b053ca2a56e62dbf155643a2a356f845125a2c2)
+++ uspace/srv/net/socket/socket_client.c	(revision d510c0fe8c70222f1ac14dbf46f89ea4957a3e0e)
@@ -386,7 +386,5 @@
 							// push the new socket identifier
 							fibril_mutex_lock( & socket->accept_lock );
-							if( ERROR_OCCURRED( dyn_fifo_push( & socket->accepted, SOCKET_GET_NEW_SOCKET_ID( call ), SOCKET_MAX_ACCEPTED_SIZE ))){
-								sockets_exclude( socket_get_sockets(), SOCKET_GET_NEW_SOCKET_ID( call ));
-							}else{
+							if( ! ERROR_OCCURRED( dyn_fifo_push( & socket->accepted, 1, SOCKET_MAX_ACCEPTED_SIZE ))){
 								// signal the accepted socket
 								fibril_condvar_signal( & socket->accept_signal );
@@ -406,4 +404,5 @@
 				}
 				fibril_rwlock_read_unlock( & socket_globals.lock );
+				break;
 			default:
 				ERROR_CODE = ENOTSUP;
@@ -420,5 +419,4 @@
 	int			socket_id;
 	services_t	service;
-	int			count;
 
 	// find the appropriate service
@@ -462,5 +460,4 @@
 	if( ! socket ) return ENOMEM;
 	bzero( socket, sizeof( * socket ));
-	count = 0;
 	fibril_rwlock_write_lock( & socket_globals.lock );
 	// request a new socket
Index: uspace/srv/net/tl/tcp/tcp.c
===================================================================
--- uspace/srv/net/tl/tcp/tcp.c	(revision 1b053ca2a56e62dbf155643a2a356f845125a2c2)
+++ uspace/srv/net/tl/tcp/tcp.c	(revision d510c0fe8c70222f1ac14dbf46f89ea4957a3e0e)
@@ -793,5 +793,4 @@
 			}
 
-			socket_id *= -1;
 			printf("new_sock %d\n", socket_id);
 			socket_data->pseudo_header = listening_socket_data->pseudo_header;
@@ -904,5 +903,5 @@
 
 			// queue the received packet
-			if( ! ERROR_OCCURRED( dyn_fifo_push( & listening_socket->accepted, socket->socket_id, listening_socket_data->backlog ))){
+			if( ! ERROR_OCCURRED( dyn_fifo_push( & listening_socket->accepted, ( -1 * socket->socket_id ), listening_socket_data->backlog ))){
 				// notify the destination socket
 				async_msg_5( socket->phone, NET_SOCKET_ACCEPTED, ( ipcarg_t ) listening_socket->socket_id, socket_data->data_fragment_size, TCP_HEADER_SIZE, 0, ( ipcarg_t ) socket->socket_id );
@@ -1898,4 +1897,5 @@
 		socket_id = dyn_fifo_value( & socket->accepted );
 		if( socket_id < 0 ) return ENOTSOCK;
+		socket_id *= -1;
 
 		accepted = socket_cores_find( local_sockets, socket_id );
