diff --git a/Source/Processors/GenericProcessor/GenericProcessor.cpp b/Source/Processors/GenericProcessor/GenericProcessor.cpp
index 0e41d7b4da3b03a0d54486a16549f160164a2daa..b0f11fd1ea3f1ac4f200b4f4cdad0a055f86f7ec 100755
--- a/Source/Processors/GenericProcessor/GenericProcessor.cpp
+++ b/Source/Processors/GenericProcessor/GenericProcessor.cpp
@@ -333,19 +333,20 @@ void GenericProcessor::update()
             dataChannelArray.add (ch);
         }
 
-        for (int i = 0; i < sourceNode->eventChannelArray.size(); ++i)
-        {
-            EventChannel* sourceChan = sourceNode->eventChannelArray[i];
-            EventChannel* ch = new EventChannel (*sourceChan);
+		for (int i = 0; i < sourceNode->eventChannelArray.size(); ++i)
+		{
+			EventChannel* sourceChan = sourceNode->eventChannelArray[i];
+			EventChannel* ch = new EventChannel(*sourceChan);
 			ch->eventMetaDataLock = true;
-            eventChannelArray.add (ch);
-        }
+			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)
 		{
diff --git a/Source/Processors/RecordNode/RecordNode.cpp b/Source/Processors/RecordNode/RecordNode.cpp
index 592f1cf8a782562a6ac1426f579a067c9085b21e..b0c04492bcc98b29eef9d9a1066a9f5d0201d578 100755
--- a/Source/Processors/RecordNode/RecordNode.cpp
+++ b/Source/Processors/RecordNode/RecordNode.cpp
@@ -159,8 +159,10 @@ void RecordNode::addInputChannel(const GenericProcessor* sourceNode, int chan)
 
         for (int n = 0; n < sourceNode->getTotalEventChannels(); n++)
         {
-
-            eventChannelArray.add(new EventChannel(*sourceNode->getEventChannel(n)));
+			const EventChannel* orig = sourceNode->getEventChannel(n);
+			//only add to the record node the events originating from this processor, to avoid duplicates
+			if (orig->getSourceNodeID() == sourceNode->getNodeId())
+				eventChannelArray.add(new EventChannel(*orig));
 
         }