Index: uspace/srv/net/tcp/conn.c
===================================================================
--- uspace/srv/net/tcp/conn.c	(revision e897527842650001c9fb751fa6a1792a272858d7)
+++ uspace/srv/net/tcp/conn.c	(revision 0abc2aea144199fee5fb2b5b1ffcf9f0ac6528ce)
@@ -128,5 +128,6 @@
 
 	/* One for the user, one for not being in closed state */
-	atomic_set(&conn->refcnt, 2);
+	refcount_init(&conn->refcnt);
+	refcount_up(&conn->refcnt);
 
 	/* Allocate receive buffer */
@@ -238,7 +239,8 @@
 void tcp_conn_addref(tcp_conn_t *conn)
 {
-	log_msg(LOG_DEFAULT, LVL_DEBUG2, "%s: tcp_conn_addref(%p) before=%zu",
-	    conn->name, conn, atomic_get(&conn->refcnt));
-	atomic_inc(&conn->refcnt);
+	log_msg(LOG_DEFAULT, LVL_DEBUG2, "%s: tcp_conn_addref(%p)",
+	    conn->name, conn);
+
+	refcount_up(&conn->refcnt);
 }
 
@@ -251,8 +253,8 @@
 void tcp_conn_delref(tcp_conn_t *conn)
 {
-	log_msg(LOG_DEFAULT, LVL_DEBUG2, "%s: tcp_conn_delref(%p) before=%zu",
-	    conn->name, conn, atomic_get(&conn->refcnt));
-
-	if (atomic_predec(&conn->refcnt) == 0)
+	log_msg(LOG_DEFAULT, LVL_DEBUG2, "%s: tcp_conn_delref(%p)",
+	    conn->name, conn);
+
+	if (refcount_down(&conn->refcnt))
 		tcp_conn_free(conn);
 }
