diff --git a/Source/Processors/DataThreads/RHD2000Thread.cpp b/Source/Processors/DataThreads/RHD2000Thread.cpp
index 2d733a5247bcfdf59c7ecc78d52957773cab252e..eeee37843ce6769756423771a364e8d65d1dd346 100644
--- a/Source/Processors/DataThreads/RHD2000Thread.cpp
+++ b/Source/Processors/DataThreads/RHD2000Thread.cpp
@@ -109,7 +109,10 @@ RHD2000Thread::~RHD2000Thread()
     }
 
 	if (deviceFound)
+    {
 		evalBoard->resetFpga();
+    }
+
 
     deleteAndZero(dataBlock);
 
@@ -276,7 +279,7 @@ void RHD2000Thread::initializeBoard()
     Rhd2000DataBlock* dataBlock = new Rhd2000DataBlock(evalBoard->getNumEnabledDataStreams());
 
 
-    evalBoard->readDataBlock(dataBlock);
+   // evalBoard->readDataBlock(dataBlock);
 
     // Now that ADC calibration has been performed, we switch to the command sequence
     // that does not execute ADC calibration.
diff --git a/Source/Processors/SpikeDetector.cpp b/Source/Processors/SpikeDetector.cpp
index 4b4908bea981a31257ae60ea6f8789208a3acc2f..663979f59de6745f205942dfc6cc7473660aab4c 100755
--- a/Source/Processors/SpikeDetector.cpp
+++ b/Source/Processors/SpikeDetector.cpp
@@ -213,7 +213,11 @@ void SpikeDetector::setChannel(int electrodeIndex, int channelNum, int newChanne
 
 int SpikeDetector::getNumChannels(int index)
 {
-    return electrodes[index]->numChannels;
+
+    if (index < electrodes.size())
+        return electrodes[index]->numChannels;
+    else
+        return 0;
 }
 
 int SpikeDetector::getChannel(int index, int i)