diff --git a/Source/Processors/Channel/MetaData.h b/Source/Processors/Channel/MetaData.h
index c1e6092b5fbb0d2aaf65af70292d93e91f15a1cb..b3677b5ce953b357e540b32d8afc3d32850033b2 100644
--- a/Source/Processors/Channel/MetaData.h
+++ b/Source/Processors/Channel/MetaData.h
@@ -196,7 +196,7 @@ protected:
 };
 
 //Special class for event and spike info objects, whose events can hold extra metadata
-class PLUGIN_API MetaDataEventObject : private MetaDataEventLock
+class PLUGIN_API MetaDataEventObject : public MetaDataEventLock
 {
 public:
 	//This method will only work when creating the info object, but not for those copied down the chain
diff --git a/Source/Processors/GenericProcessor/GenericProcessor.cpp b/Source/Processors/GenericProcessor/GenericProcessor.cpp
index abc131ddf1ba25d04a8e72bf043b4c7f836ba363..ee6569ef935fc2250049af6b2c01d53e209f2a5b 100755
--- a/Source/Processors/GenericProcessor/GenericProcessor.cpp
+++ b/Source/Processors/GenericProcessor/GenericProcessor.cpp
@@ -320,7 +320,7 @@ void GenericProcessor::update()
         {
             DataChannel* sourceChan = sourceNode->dataChannelArray[i];
             DataChannel* ch = new DataChannel (*sourceChan);
-
+			
 
             if (i < m_recordStatus.size())
             {
@@ -336,12 +336,14 @@ void GenericProcessor::update()
         {
             EventChannel* sourceChan = sourceNode->eventChannelArray[i];
             EventChannel* ch = new EventChannel (*sourceChan);
+			ch->eventMetaDataLock = true;
             eventChannelArray.add (ch);
         }
 		for (int i = 0; i < sourceNode->spikeChannelArray.size(); ++i)
 		{
 			SpikeChannel* sourceChan = sourceNode->spikeChannelArray[i];
 			SpikeChannel* ch = new SpikeChannel(*sourceChan);
+			ch->eventMetaDataLock = true;
 			spikeChannelArray.add(ch);
 		}
 		for (int i = 0; i < sourceNode->configurationObjectArray.size(); ++i)