Index: uspace/srv/audio/hound/audio_data.c
===================================================================
--- uspace/srv/audio/hound/audio_data.c	(revision e89a06a6551f1dacee7bb5fa05a9eaa8901612d6)
+++ uspace/srv/audio/hound/audio_data.c	(revision f34d2be9e87b070acb43a27a73c4ae74ad2c5d66)
@@ -59,5 +59,5 @@
 		adata->size = size - overflow;
 		adata->format = format;
-		atomic_set(&adata->refcount, 1);
+		refcount_init(&adata->refcount);
 	}
 	return adata;
@@ -71,6 +71,5 @@
 {
 	assert(adata);
-	assert(atomic_get(&adata->refcount) > 0);
-	atomic_inc(&adata->refcount);
+	refcount_up(&adata->refcount);
 }
 
@@ -82,7 +81,5 @@
 {
 	assert(adata);
-	assert(atomic_get(&adata->refcount) > 0);
-	atomic_count_t refc = atomic_predec(&adata->refcount);
-	if (refc == 0) {
+	if (refcount_down(&adata->refcount)) {
 		free(adata->data);
 		free(adata);
Index: uspace/srv/audio/hound/audio_data.h
===================================================================
--- uspace/srv/audio/hound/audio_data.h	(revision e89a06a6551f1dacee7bb5fa05a9eaa8901612d6)
+++ uspace/srv/audio/hound/audio_data.h	(revision f34d2be9e87b070acb43a27a73c4ae74ad2c5d66)
@@ -38,5 +38,5 @@
 
 #include <adt/list.h>
-#include <atomic.h>
+#include <refcount.h>
 #include <errno.h>
 #include <fibril_synch.h>
@@ -52,5 +52,5 @@
 	pcm_format_t format;
 	/** Reference counter */
-	atomic_t refcount;
+	atomic_refcount_t refcount;
 } audio_data_t;
 
