diff --git a/Builds/VisualStudio2012/open-ephys.vcxproj b/Builds/VisualStudio2012/open-ephys.vcxproj
index 916ed2f2d4dc85713c1adfe83e0e4d8397af2c98..7d9084d23bd05021d6910b040d2a86414dea1e6c 100644
--- a/Builds/VisualStudio2012/open-ephys.vcxproj
+++ b/Builds/VisualStudio2012/open-ephys.vcxproj
@@ -96,7 +96,7 @@
       <ProgramDataBaseFileName>$(IntDir)\</ProgramDataBaseFileName>
       <WarningLevel>Level4</WarningLevel>
       <SuppressStartupBanner>true</SuppressStartupBanner>
-      <MultiProcessorCompilation>true</MultiProcessorCompilation>
+      <MultiProcessorCompilation>false</MultiProcessorCompilation>
     </ClCompile>
     <ResourceCompile>
       <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
diff --git a/Source/Processors/AudioNode.cpp b/Source/Processors/AudioNode.cpp
index a804995f40141cd1993708d94bdd84d16ddfb929..6abd062f2051402f741bffa88161671064f1c96c 100755
--- a/Source/Processors/AudioNode.cpp
+++ b/Source/Processors/AudioNode.cpp
@@ -336,7 +336,7 @@ void AudioNode::process(AudioSampleBuffer& buffer,
                     // std::cout << "Samples remaining in incoming buffer: " << orphanedSamples << std::endl;
 
 
-                    if (orphanedSamples > 0)
+                    if (orphanedSamples > 0 && (samplesInBackupBuffer + orphanedSamples < backupBuffer->getNumSamples()))
                     {
                         backupBuffer->addFrom(0,       // destination channel
                                               samplesInBackupBuffer,           // destination start sample
@@ -356,7 +356,11 @@ void AudioNode::process(AudioSampleBuffer& buffer,
                                               gain       // gain to apply
                                              );
 
-                    }
+					}
+					else {
+						samplesInBackupBuffer = 0; // just throw out the buffer in the case of an overrun
+											       // not ideal, but the output still sounds fine
+					}
 
                     // Simple implementation of a "noise gate" on audio output
                     expander.process(buffer.getWritePointer(0), // left channel