diff --git a/libs/audio/targets/snd_disk.c b/libs/audio/targets/snd_disk.c
index 1c8d36f39..ddbfee0b1 100644
--- a/libs/audio/targets/snd_disk.c
+++ b/libs/audio/targets/snd_disk.c
@@ -68,30 +68,29 @@ static snd_output_data_t	plugin_info_snd_output_data;
 static snd_output_funcs_t	plugin_info_snd_output_funcs;
 
 
-/* FIXME
 static volatile dma_t *
 SNDDMA_Init (void)
 {
-	memset ((dma_t *) sn, 0, sizeof (sn));
+	memset ((dma_t *) &sn, 0, sizeof (sn));
 	sn.channels = 2;
 	sn.submission_chunk = 1;			// don't mix less than this #
-	sn.samplepos = 0;					// in mono samples
+	sn.framepos = 0;
 	sn.samplebits = 16;
-	sn.samples = 16384;				// mono samples in buffer
+	sn.frames = 16384;
 	sn.speed = 44100;
-	sn.buffer = malloc (sn.samples * sn.channels * sn.samplebits / 8);
+	sn.buffer = malloc (sn.frames * sn.channels * sn.samplebits / 8);
 	if (!sn.buffer) {
 		Sys_Printf ("SNDDMA_Init: memory allocation failure\n");
 		return 0;
 	}
 
-	Sys_Printf ("%5d stereo\n", sn.channels - 1);
-	Sys_Printf ("%5d samples\n", sn.samples);
-	Sys_Printf ("%5d samplepos\n", sn.samplepos);
+	Sys_Printf ("%5d channels\n", sn.channels - 1);
+	Sys_Printf ("%5d samples\n", sn.frames);
+	Sys_Printf ("%5d samplepos\n", sn.framepos);
 	Sys_Printf ("%5d samplebits\n", sn.samplebits);
 	Sys_Printf ("%5d submission_chunk\n", sn.submission_chunk);
 	Sys_Printf ("%5d speed\n", sn.speed);
-	Sys_Printf ("0x%x dma buffer\n", (int) sn.buffer);
+	Sys_Printf ("0x%lx dma buffer\n", (long) sn.buffer);
 
 	if (!(snd_file = Qopen ("qf.raw", "wb")))
 		return 0;
@@ -99,7 +98,11 @@ SNDDMA_Init (void)
 	snd_inited = 1;
 	return &sn;
 }
-*/
+
+static void
+SNDDMA_Init_Cvars (void)
+{
+}
 
 static int
 SNDDMA_GetDMAPos (void)
@@ -172,8 +175,10 @@ PLUGIN_INFO(snd_output, disk)
 	plugin_info_funcs.input = NULL;
 	plugin_info_funcs.snd_output = &plugin_info_snd_output_funcs;
 
-//	plugin_info_general_funcs.p_Init = SNDDMA_Init; // FIXME
-	plugin_info_general_funcs.p_Shutdown = SNDDMA_Shutdown;
+	plugin_info_general_funcs.p_Init = SNDDMA_Init_Cvars;
+	plugin_info_general_funcs.p_Shutdown = NULL;
+	plugin_info_snd_output_funcs.pS_O_Init = SNDDMA_Init;
+	plugin_info_snd_output_funcs.pS_O_Shutdown = SNDDMA_Shutdown;
 	plugin_info_snd_output_funcs.pS_O_GetDMAPos = SNDDMA_GetDMAPos;
 	plugin_info_snd_output_funcs.pS_O_Submit = SNDDMA_Submit;
 	plugin_info_snd_output_funcs.pS_O_BlockSound = SNDDMA_BlockSound;