Index: uspace/lib/hound/src/protocol.c
===================================================================
--- uspace/lib/hound/src/protocol.c	(revision 63c34d7bacb4d2e1a34dec1fd2af7e7a96737175)
+++ uspace/lib/hound/src/protocol.c	(revision a9aae16e62a6d224ed168129b4de751cdac35a49)
@@ -72,5 +72,4 @@
 	return loc_service_connect(EXCHANGE_SERIALIZE, id, 0);
 }
-
 void hound_release_session(hound_sess_t *sess)
 {
@@ -78,5 +77,4 @@
 		async_hangup(sess);
 }
-
 int hound_register_playback(hound_sess_t *sess, const char *name,
     unsigned channels, unsigned rate, pcm_sample_format_t format,
@@ -213,9 +211,4 @@
 	return ret;
 }
-
-
-
-
-
 static void callback_gen(ipc_callid_t iid, ipc_call_t *call, void *arg,
     bool read)
@@ -234,6 +227,9 @@
 		ipc_callid_t id = 0;
 		if (!receive(&id, &size)) {
-			/* Protocol error */
-			cb->cb(cb->arg, NULL, EIO);
+			ipc_call_t failed_call;
+			async_get_call(&failed_call);
+			/* Protocol error or hangup */
+			if (IPC_GET_IMETHOD(failed_call) != 0)
+				cb->cb(cb->arg, NULL, EIO);
 			free(cb);
 			return;
