Index: uspace/srv/net/tl/tcp/tcp.c
===================================================================
--- uspace/srv/net/tl/tcp/tcp.c	(revision 31c80a5a694a236c6e15ef83715beb9292c3da99)
+++ uspace/srv/net/tl/tcp/tcp.c	(revision a8a13d06144cd1b2fb793e67554e75be33860ac2)
@@ -1241,4 +1241,7 @@
 	}
 
+	// release the application phone
+	ipc_hangup(app_phone);
+
 	printf("release\n");
 	// release all local sockets
@@ -1277,9 +1280,10 @@
 					// TODO release as connection lost
 					//tcp_refresh_socket_data(socket_data);
+					fibril_rwlock_write_unlock(socket_data->local_lock);
 				}else{
 					// retransmit
-					tcp_retransmit_packet(socket, socket_data, timeout->sequence_number);
-				}
-				fibril_rwlock_write_unlock(socket_data->local_lock);
+//					tcp_retransmit_packet(socket, socket_data, timeout->sequence_number);
+					fibril_rwlock_write_unlock(socket_data->local_lock);
+				}
 			}else{
 				fibril_mutex_lock(&socket_data->operation.mutex);
Index: uspace/srv/net/tl/udp/udp.c
===================================================================
--- uspace/srv/net/tl/udp/udp.c	(revision 31c80a5a694a236c6e15ef83715beb9292c3da99)
+++ uspace/srv/net/tl/udp/udp.c	(revision a8a13d06144cd1b2fb793e67554e75be33860ac2)
@@ -508,4 +508,7 @@
 	}
 
+	// release the application phone
+	ipc_hangup(app_phone);
+
 	// release all local sockets
 	socket_cores_release(udp_globals.net_phone, &local_sockets, &udp_globals.sockets, NULL);
