diff --git a/apu/apu.cpp b/apu/apu.cpp
index f1fe4b5e..2848d3a6 100644
--- a/apu/apu.cpp
+++ b/apu/apu.cpp
@@ -336,9 +336,9 @@ bool8 S9xMixSamples (uint8 *buffer, int sample_count)
 			{
 				if (msu::resampler->avail() >= sample_count)
 				{
-					uint8 *msu_sample = new uint8[shrink_buffer_size];
+					uint8 *msu_sample = new uint8[sample_count * 2];
 					msu::resampler->read((short *)msu_sample, sample_count);
-					for(uint32 i = 0; i < sample_count; ++i)
+					for(uint32 i = 0; i < (sample_count * 2); ++i)
 						dest[i] += msu_sample[i];
 				}
 			}