Index: uspace/lib/c/generic/io/io.c
===================================================================
--- uspace/lib/c/generic/io/io.c	(revision 7c014d1fbbe9734e6ee3616fac584d8cc996df36)
+++ uspace/lib/c/generic/io/io.c	(revision 45d105a8f2dda340699a47c46b2d89ea783b5eaa)
@@ -418,13 +418,11 @@
 
 	bytes_used = stream->buf_head - stream->buf_tail;
-	if (bytes_used == 0)
-		return;
 
 	/* If buffer has prefetched read data, we need to seek back. */
-	if (stream->buf_state == _bs_read)
+	if (bytes_used > 0 && stream->buf_state == _bs_read)
 		lseek(stream->fd, - (ssize_t) bytes_used, SEEK_CUR);
 
 	/* If buffer has unwritten data, we need to write them out. */
-	if (stream->buf_state == _bs_write)
+	if (bytes_used > 0 && stream->buf_state == _bs_write)
 		(void) _fwrite(stream->buf_tail, 1, bytes_used, stream);
 
