diff --git a/Builds/VisualStudio2012/open-ephys.vcxproj b/Builds/VisualStudio2012/open-ephys.vcxproj
index 14ed7842273bd6474165b7952f7e1e28b2ef49a5..9cb8ddb36bde8026bab72c4fe3373de68798f628 100644
--- a/Builds/VisualStudio2012/open-ephys.vcxproj
+++ b/Builds/VisualStudio2012/open-ephys.vcxproj
@@ -98,7 +98,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