Index: uspace/lib/hound/src/client.c
===================================================================
--- uspace/lib/hound/src/client.c	(revision cc3c27ad65c204fa389a65354d811ea60d682915)
+++ uspace/lib/hound/src/client.c	(revision 6d74977ff764426cc1e9ba3bf5c20b967ecaa003)
@@ -54,4 +54,5 @@
 	async_exch_t *exch;
 	hound_context_t *context;
+	int flags;
 } hound_stream_t;
 
@@ -215,4 +216,5 @@
 		new_stream->format = format;
 		new_stream->context = hound;
+		new_stream->flags = flags;
 		const int ret = hound_service_stream_enter(new_stream->exch,
 		    hound->id, flags, format, bsize);
@@ -230,5 +232,6 @@
 {
 	if (stream) {
-		// TODO drain?
+		if (stream->flags & HOUND_STREAM_DRAIN_ON_EXIT)
+			hound_service_stream_drain(stream->exch);
 		hound_service_stream_exit(stream->exch);
 		async_exchange_end(stream->exch);
@@ -258,6 +261,7 @@
 	assert(hound);
 	if (!hound->main.stream)
-		hound->main.stream = hound_stream_create(hound, 0,
-		    hound->main.format, hound->main.bsize);
+		hound->main.stream = hound_stream_create(hound,
+		    HOUND_STREAM_DRAIN_ON_EXIT,hound->main.format,
+		    hound->main.bsize);
 	return hound->main.stream;
 }
