Index: uspace/srv/audio/hound/hound.c
===================================================================
--- uspace/srv/audio/hound/hound.c	(revision 2373ba709438dc218010b81a484c3b6473a5d15e)
+++ uspace/srv/audio/hound/hound.c	(revision 353f8cc030da77dca4db88f227dea203dfd04f7d)
@@ -148,4 +148,6 @@
 	if (!ctx)
 		return EINVAL;
+	if (!list_empty(&ctx->streams))
+		return EBUSY;
 	fibril_mutex_lock(&hound->list_guard);
 	list_remove(&ctx->link);
Index: uspace/srv/audio/hound/hound_ctx.c
===================================================================
--- uspace/srv/audio/hound/hound_ctx.c	(revision 2373ba709438dc218010b81a484c3b6473a5d15e)
+++ uspace/srv/audio/hound/hound_ctx.c	(revision 353f8cc030da77dca4db88f227dea203dfd04f7d)
@@ -77,9 +77,9 @@
 	assert(ctx);
 	assert(!link_in_use(&ctx->link));
+	assert(list_empty(&ctx->streams));
 	if (ctx->source)
 		audio_source_fini(ctx->source);
 	if (ctx->sink)
 		audio_sink_fini(ctx->sink);
-	//TODO remove streams
 	free(ctx->source);
 	free(ctx->sink);
Index: uspace/srv/audio/hound/iface.c
===================================================================
--- uspace/srv/audio/hound/iface.c	(revision 2373ba709438dc218010b81a484c3b6473a5d15e)
+++ uspace/srv/audio/hound/iface.c	(revision 353f8cc030da77dca4db88f227dea203dfd04f7d)
@@ -69,5 +69,7 @@
 	if (!ctx)
 		return EINVAL;
-	hound_remove_ctx(server, ctx);
+	int ret = hound_remove_ctx(server, ctx);
+	if (ret != EOK)
+		return ret;
 	hound_ctx_destroy(ctx);
 	log_info("%s: %p, %#x", __FUNCTION__, server, id);
