Index: uspace/srv/audio/hound/audio_data.c
===================================================================
--- uspace/srv/audio/hound/audio_data.c	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/srv/audio/hound/audio_data.c	(revision 3f932a7eeaf8b09420c71c95d09792b4ef55221a)
@@ -36,5 +36,4 @@
 #include <macros.h>
 #include <stdlib.h>
-#include <str.h>
 
 #include "audio_data.h"
@@ -57,6 +56,5 @@
 			log_warning("Data not a multiple of frame size, "
 			    "clipping.");
-		uint8_t *d = ((uint8_t *)adata) + offsetof(audio_data_t, data);
-		memcpy(d, data, size);
+		adata->data = data;
 		adata->size = size - overflow;
 		adata->format = format;
@@ -87,4 +85,5 @@
 	atomic_count_t refc = atomic_predec(&adata->refcount);
 	if (refc == 0) {
+		free((void *) adata->data);
 		free(adata);
 	}
Index: uspace/srv/audio/hound/audio_data.h
===================================================================
--- uspace/srv/audio/hound/audio_data.h	(revision 1433ecda9b732f3f185f902feb26826ec2496e03)
+++ uspace/srv/audio/hound/audio_data.h	(revision 3f932a7eeaf8b09420c71c95d09792b4ef55221a)
@@ -45,4 +45,6 @@
 /** Reference counted audio buffer */
 typedef struct {
+	/** Audio data */
+	const void *data;
 	/** Size of the buffer pointer to by data */
 	size_t size;
@@ -51,6 +53,4 @@
 	/** Reference counter */
 	atomic_t refcount;
-	/** Audio data */
-	const uint8_t data[];
 } audio_data_t;
 
