Index: uspace/lib/hound/src/protocol.c
===================================================================
--- uspace/lib/hound/src/protocol.c	(revision d1582b502edcb7bfeef771a2019538f265e7e27c)
+++ uspace/lib/hound/src/protocol.c	(revision 8d1bcd7366211adcd03d6018fa04133f76bc1946)
@@ -1,3 +1,4 @@
 /*
+ * Copyright (c) 2023 Jiri Svoboda
  * Copyright (c) 2012 Jan Vesely
  * All rights reserved.
@@ -84,4 +85,7 @@
 const char *HOUND_SERVICE = "audio/hound";
 
+/** Server object */
+static loc_srv_t *hound_srv;
+
 /**
  * Start a new audio session.
@@ -730,12 +734,23 @@
 errno_t hound_server_register(const char *name, service_id_t *id)
 {
+	errno_t rc;
+
 	if (!name || !id)
 		return EINVAL;
 
-	errno_t ret = loc_server_register(name);
-	if (ret != EOK)
-		return ret;
-
-	return loc_service_register(HOUND_SERVICE, id);
+	if (hound_srv != NULL)
+		return EBUSY;
+
+	rc = loc_server_register(name, &hound_srv);
+	if (rc != EOK)
+		return rc;
+
+	rc = loc_service_register(hound_srv, HOUND_SERVICE, id);
+	if (rc != EOK) {
+		loc_server_unregister(hound_srv);
+		return rc;
+	}
+
+	return EOK;
 }
 
@@ -746,5 +761,6 @@
 void hound_server_unregister(service_id_t id)
 {
-	loc_service_unregister(id);
+	loc_service_unregister(hound_srv, id);
+	loc_server_unregister(hound_srv);
 }
 
