diff -Naur audiofile-0.2.6/libaudiofile/modules/msadpcm.c audiofile-0.2.6-mp/libaudiofile/modules/msadpcm.c
--- audiofile-0.2.6/libaudiofile/modules/msadpcm.c	2004-03-06 07:39:23.000000000 +0100
+++ audiofile-0.2.6-mp/libaudiofile/modules/msadpcm.c	2009-01-20 20:05:14.919961000 +0100
@@ -129,8 +129,7 @@
 	ms_adpcm_state	*state[2];
 
 	/* Calculate the number of bytes needed for decoded data. */
-	outputLength = msadpcm->samplesPerBlock * sizeof (int16_t) *
-		msadpcm->track->f.channelCount;
+	outputLength = msadpcm->samplesPerBlock * sizeof (int16_t);
 
 	channelCount = msadpcm->track->f.channelCount;
 
@@ -180,8 +179,7 @@
 		The first two samples have already been 'decoded' in
 		the block header.
 	*/
-	samplesRemaining = (msadpcm->samplesPerBlock - 2) *
-		msadpcm->track->f.channelCount;
+	samplesRemaining = msadpcm->samplesPerBlock - 2; 
 
 	while (samplesRemaining > 0)
 	{
