diff --git a/Source/Plugins/NWBFormat/NWBRecording.cpp b/Source/Plugins/NWBFormat/NWBRecording.cpp
index 081a4ff9b487fff244ebcaed34403e83a86dfc4d..e729934bbff4de16a8c9345cb4ee97d507d44630 100644
--- a/Source/Plugins/NWBFormat/NWBRecording.cpp
+++ b/Source/Plugins/NWBFormat/NWBRecording.cpp
@@ -98,6 +98,10 @@
 	 for (int i = 0; i < nEvents; i++)
 		 eventChannels.add(getEventChannel(i));
 
+	 int nSpikes = getNumRecordedSpikes();
+	 for (int i = 0; i < nSpikes; i++)
+		 spikeChannels.add(getSpikeChannel(i));
+
 	 //open the file
 	 recordFile->open(getNumRecordedChannels() + continuousChannels.size() + eventChannels.size() + spikeChannels.size()); //total channels + timestamp arrays, to create a big enough buffer
 
@@ -113,19 +117,14 @@
 	 recordFile->stopRecording();
 	 recordFile->close();
 	 recordFile = nullptr;
-	 resetChannels(false);
+	 resetChannels();
  }
 
- void NWBRecordEngine::resetChannels()
- {
-	 resetChannels(true);
- }
 
  
- void NWBRecordEngine::resetChannels(bool resetSpikes)
+ void NWBRecordEngine::resetChannels()
  {
-	 if (resetSpikes)
-		 spikeChannels.clear();
+	 spikeChannels.clear();
 	 eventChannels.clear();
 	 continuousChannels.clear();
 	 datasetIndexes.clear();
@@ -171,7 +170,6 @@ void NWBRecordEngine::writeTimestampSyncText(uint16 sourceID, uint16 sourceIdx,
 
 void NWBRecordEngine::addSpikeElectrode(int index,const  SpikeChannel* elec) 
 {
-	spikeChannels.add(elec);
 }
 
 void NWBRecordEngine::writeSpike(int electrodeIndex, const SpikeEvent* spike) 
diff --git a/Source/Plugins/NWBFormat/NWBRecording.h b/Source/Plugins/NWBFormat/NWBRecording.h
index e521a34c35dbb2a4627a318bce94c7bd6d33d534..e74219d6c4f8d675574f9d6e74d6f8d45cd7453a 100644
--- a/Source/Plugins/NWBFormat/NWBRecording.h
+++ b/Source/Plugins/NWBFormat/NWBRecording.h
@@ -48,7 +48,6 @@
 			static RecordEngineManager* getEngineManager();
 			
 		private:
-			void resetChannels(bool resetSpikes);
 			ScopedPointer<NWBFile> recordFile;
 			Array<int> datasetIndexes;
 			Array<int> writeChannelIndexes;
diff --git a/Source/Processors/RecordNode/EngineConfigWindow.cpp b/Source/Processors/RecordNode/EngineConfigWindow.cpp
index 309748230f4232a5e097bd4ee3e23152129757ea..ffd7e00540c6f6a6801b643f406c41f75154ba71 100644
--- a/Source/Processors/RecordNode/EngineConfigWindow.cpp
+++ b/Source/Processors/RecordNode/EngineConfigWindow.cpp
@@ -78,7 +78,7 @@ EngineParameterComponent::EngineParameterComponent(EngineParameter& param)
         addAndMakeVisible(lab);
         control = lab;
     }
-    this->setTooltip(param.name);
+    this->setTooltip(name);
 }
 
 EngineParameterComponent::~EngineParameterComponent()
diff --git a/Source/Processors/RecordNode/OriginalRecording.h b/Source/Processors/RecordNode/OriginalRecording.h
index 3730992ec2d91d1e0aef513f8eedc5b6fb7849aa..849e479f1dac1fe796fc2064effb8be7c68b607e 100644
--- a/Source/Processors/RecordNode/OriginalRecording.h
+++ b/Source/Processors/RecordNode/OriginalRecording.h
@@ -44,7 +44,7 @@ public:
     OriginalRecording();
     ~OriginalRecording();
 
-    void setParameter(EngineParameter& parameter);
+    void setParameter(EngineParameter& parameter) override;
     String getEngineID() const override;
     void openFiles(File rootFolder, int experimentNumber, int recordingNumber) override;
 	void closeFiles() override;
diff --git a/Source/Processors/RecordNode/RecordEngine.cpp b/Source/Processors/RecordNode/RecordEngine.cpp
index fc9a8db2b2c26ea9f63706257700d8335089da18..c627fd54b49c5c48ed9af8ae17ea8c52cc93a638 100644
--- a/Source/Processors/RecordNode/RecordEngine.cpp
+++ b/Source/Processors/RecordNode/RecordEngine.cpp
@@ -108,6 +108,11 @@ int RecordEngine::getNumRecordedEvents() const
 	return AccessClass::getProcessorGraph()->getRecordNode()->getTotalEventChannels();
 }
 
+int RecordEngine::getNumRecordedSpikes() const
+{
+	return AccessClass::getProcessorGraph()->getRecordNode()->getTotalSpikeChannels();
+}
+
 void RecordEngine::registerSpikeSource (const GenericProcessor* processor) {}
 
 int RecordEngine::getNumRecordedProcessors() const
@@ -186,6 +191,10 @@ EngineParameter::EngineParameter (EngineParameter::EngineParameterType paramType
     {
         strParam.value = defaultValue;
     }
+	else if (paramType == MULTI)
+	{
+		multiParam.value = defaultValue;
+	}
 }
 
 
diff --git a/Source/Processors/RecordNode/RecordEngine.h b/Source/Processors/RecordNode/RecordEngine.h
index b75e45e06082aac56816256d38320aec69b2d72a..d6234c07dc506af898501cd0002e0f1e2e4f4785 100644
--- a/Source/Processors/RecordNode/RecordEngine.h
+++ b/Source/Processors/RecordNode/RecordEngine.h
@@ -167,7 +167,7 @@ protected:
     /** Generate a Matlab-compatible datestring */
     String generateDateString() const;
 
-    /** Gets the current block's first timestamp for a given channel */
+    /** Gets the current block's first timestamp for a given recorded channel */
     int64 getTimestamp (int channel) const;
 
     /** Gets the actual channel number from a recorded channel index */
@@ -180,8 +180,9 @@ protected:
 	 (right now all channels are recorded) */
 	int getNumRecordedEvents() const;
 
-	/** TODO: to fill when the probe system is implemented*/
-	//int getNumRecordedSpikes() const;
+	/** Gets the number of recorded spike channels
+	(right now all channels are recorded) */
+	int getNumRecordedSpikes() const;
 
     /** Gets the number of processors being recorded
     */