Index: uspace/srv/net/tcp/ucall.c
===================================================================
--- uspace/srv/net/tcp/ucall.c	(revision c4f67c8f458a934b5c666a52114343c5ccbf597a)
+++ uspace/srv/net/tcp/ucall.c	(revision 5441670e049ac8387955538c8c938f7204305e9a)
@@ -76,4 +76,5 @@
 	nconn = tcp_conn_new(lsock, fsock);
 	tcp_conn_add(nconn);
+	tcp_conn_lock(nconn);
 
 	if (acpass == ap_active) {
@@ -83,4 +84,5 @@
 
 	if (oflags == tcp_open_nonblock) {
+		tcp_conn_unlock(nconn);
 		log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_uc_open -> %p", nconn);
 		*conn = nconn;
@@ -90,5 +92,4 @@
 	/* Wait for connection to be established or reset */
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "tcp_uc_open: Wait for connection.");
-	tcp_conn_lock(nconn);
 	while (nconn->cstate == st_listen ||
 	    nconn->cstate == st_syn_sent ||
