diff --git a/src/output/null_plugin.c b/src/output/null_plugin.c
index 139921a3f..a1eb0196f 100644
--- a/src/output/null_plugin.c
+++ b/src/output/null_plugin.c
@@ -21,6 +21,8 @@
 
 #include <glib.h>
 
+#include <assert.h>
+
 struct null_data {
 	Timer *timer;
 };
@@ -37,6 +39,16 @@ null_init(G_GNUC_UNUSED struct audio_output *audio_output,
 	return nd;
 }
 
+static void
+null_finish(void *data)
+{
+	struct null_data *nd = data;
+
+	assert(nd->timer == NULL);
+
+	g_free(nd);
+}
+
 static bool
 null_open(void *data, struct audio_format *audio_format)
 {
@@ -85,6 +97,7 @@ null_cancel(void *data)
 const struct audio_output_plugin null_output_plugin = {
 	.name = "null",
 	.init = null_init,
+	.finish = null_finish,
 	.open = null_open,
 	.close = null_close,
 	.play = null_play,