Index: uspace/srv/net/tl/tcp/ucall.c
===================================================================
--- uspace/srv/net/tl/tcp/ucall.c	(revision 9c3bba06c8dc8ea4088c38f2ea74e70d37d8946e)
+++ uspace/srv/net/tl/tcp/ucall.c	(revision 0d29e0cd6488c4ef4fadc92b7d448621df6d7f9f)
@@ -126,6 +126,8 @@
 	while (size > 0) {
 		buf_free = conn->snd_buf_size - conn->snd_buf_used;
-		while (buf_free == 0 && !conn->reset)
+		while (buf_free == 0 && !conn->reset) {
 			tcp_tqueue_new_data(conn);
+			buf_free = conn->snd_buf_size - conn->snd_buf_used;
+		}
 
 		if (conn->reset)
