diff --git a/src/decoder/plugins/DsdiffDecoderPlugin.cxx b/src/decoder/plugins/DsdiffDecoderPlugin.cxx
index c005c6a88..f10f266fb 100644
--- a/src/decoder/plugins/DsdiffDecoderPlugin.cxx
+++ b/src/decoder/plugins/DsdiffDecoderPlugin.cxx
@@ -185,17 +185,17 @@ dsdiff_read_prop(DecoderClient *client, InputStream &is,
 }
 
 static void
-dsdiff_handle_native_tag(InputStream &is,
+dsdiff_handle_native_tag(DecoderClient *client, InputStream &is,
 			 TagHandler &handler,
 			 offset_type tagoffset,
 			 TagType type)
 {
-	if (!dsdlib_skip_to(nullptr, is, tagoffset))
+	if (!dsdlib_skip_to(client, is, tagoffset))
 		return;
 
 	struct dsdiff_native_tag metatag;
 
-	if (!decoder_read_full(nullptr, is, &metatag, sizeof(metatag)))
+	if (!decoder_read_full(client, is, &metatag, sizeof(metatag)))
 		return;
 
 	uint32_t length = FromBE32(metatag.size);
@@ -209,7 +209,7 @@ dsdiff_handle_native_tag(InputStream &is,
 	char *label;
 	label = string;
 
-	if (!decoder_read_full(nullptr, is, label, (size_t)length))
+	if (!decoder_read_full(client, is, label, (size_t)length))
 		return;
 
 	string[length] = '\0';
@@ -292,11 +292,11 @@ dsdiff_read_metadata_extra(DecoderClient *client, InputStream &is,
 #endif
 
 	if (artist_offset != 0)
-		dsdiff_handle_native_tag(is, handler,
+		dsdiff_handle_native_tag(client, is, handler,
 					 artist_offset, TAG_ARTIST);
 
 	if (title_offset != 0)
-		dsdiff_handle_native_tag(is, handler,
+		dsdiff_handle_native_tag(client, is, handler,
 					 title_offset, TAG_TITLE);
 	return true;
 }