Index: uspace/lib/hound/include/hound/client.h
===================================================================
--- uspace/lib/hound/include/hound/client.h	(revision 03c2d5fa9f878f7375d379331d4bd9df872d8b70)
+++ uspace/lib/hound/include/hound/client.h	(revision cc3c27ad65c204fa389a65354d811ea60d682915)
@@ -54,7 +54,4 @@
 void hound_context_destroy(hound_context_t *hound);
 
-int hound_context_enable(hound_context_t *hound);
-int hound_context_disable(hound_context_t *hound);
-
 int hound_context_set_main_stream_format(hound_context_t *hound,
     unsigned channels, unsigned rate, pcm_sample_format_t format);
Index: uspace/lib/hound/src/client.c
===================================================================
--- uspace/lib/hound/src/client.c	(revision 03c2d5fa9f878f7375d379331d4bd9df872d8b70)
+++ uspace/lib/hound/src/client.c	(revision cc3c27ad65c204fa389a65354d811ea60d682915)
@@ -55,4 +55,9 @@
 	hound_context_t *context;
 } hound_stream_t;
+
+static inline hound_stream_t * hound_stream_from_link(link_t *l)
+{
+	return l ? list_get_instance(l, hound_stream_t, link) : NULL;
+}
 
 typedef struct hound_context {
@@ -120,19 +125,15 @@
 {
 	assert(hound);
+
+	while (!list_empty(&hound->stream_list)) {
+		link_t *first = list_first(&hound->stream_list);
+		hound_stream_t *stream = hound_stream_from_link(first);
+		hound_stream_destroy(stream);
+	}
+
 	hound_service_unregister_context(hound->session, hound->id);
 	hound_service_disconnect(hound->session);
 	free(hound->name);
 	free(hound);
-}
-
-int hound_context_enable(hound_context_t *hound)
-{
-	assert(hound);
-	return ENOTSUP;
-}
-int hound_context_disable(hound_context_t *hound)
-{
-	assert(hound);
-	return ENOTSUP;
 }
 
Index: uspace/lib/hound/src/protocol.c
===================================================================
--- uspace/lib/hound/src/protocol.c	(revision 03c2d5fa9f878f7375d379331d4bd9df872d8b70)
+++ uspace/lib/hound/src/protocol.c	(revision cc3c27ad65c204fa389a65354d811ea60d682915)
@@ -412,6 +412,7 @@
 		}
 		case IPC_M_HOUND_STREAM_ENTER: {
-			if (!server_iface || !server_iface->add_stream
-			    || !server_iface->is_record_context) {
+			if (!server_iface || !server_iface->is_record_context
+			    || !server_iface->add_stream
+			    || !server_iface->rem_stream) {
 				async_answer_0(callid, ENOTSUP);
 				break;
@@ -438,4 +439,6 @@
 					async_answer_0(callid, EOK);
 					hound_server_write_data(stream);
+					server_iface->rem_stream(
+					    server_iface->server, stream);
 				} else {
 					async_answer_0(callid, ENOTSUP);
@@ -445,4 +448,6 @@
 					async_answer_0(callid, EOK);
 					hound_server_read_data(stream);
+					server_iface->rem_stream(
+					    server_iface->server, stream);
 				} else {
 					async_answer_0(callid, ENOTSUP);
