Index: uspace/lib/c/include/inet/tcp.h
===================================================================
--- uspace/lib/c/include/inet/tcp.h	(revision 048cd69e69ce8a5ca8bbf5d8a5b5451745dca93a)
+++ uspace/lib/c/include/inet/tcp.h	(revision 2654afbde2adc86cb19dddeb6edeb7ad9308db21)
@@ -90,4 +90,10 @@
 	/** List of listeners */
 	list_t listener; /* of tcp_listener_t */
+	/** TCP service lock */
+	fibril_mutex_t lock;
+	/** For waiting on cb_done */
+	fibril_condvar_t cv;
+	/** Set to @a true when callback connection handler has terminated */
+	bool cb_done;
 } tcp_t;
 
Index: uspace/lib/c/include/inet/udp.h
===================================================================
--- uspace/lib/c/include/inet/udp.h	(revision 048cd69e69ce8a5ca8bbf5d8a5b5451745dca93a)
+++ uspace/lib/c/include/inet/udp.h	(revision 2654afbde2adc86cb19dddeb6edeb7ad9308db21)
@@ -37,7 +37,9 @@
 
 #include <async.h>
+#include <fibril_synch.h>
 #include <inet/addr.h>
 #include <inet/endpoint.h>
 #include <inet/inet.h>
+#include <stdbool.h>
 
 /** UDP link state */
@@ -81,4 +83,10 @@
 	/** List of associations */
 	list_t assoc; /* of udp_assoc_t */
+	/** UDP service lock */
+	fibril_mutex_t lock;
+	/** For waiting on cb_done */
+	fibril_condvar_t cv;
+	/** Set to @a true when callback connection handler has terminated */
+	bool cb_done;
 } udp_t;
 
