diff --git a/Source/Processors/Editors/ChannelSelector.cpp b/Source/Processors/Editors/ChannelSelector.cpp
index 0b4470e4094a4145101358194da8b8268daf7af2..c052976e7070ab3ec906aaeed67366cfeccc17bf 100755
--- a/Source/Processors/Editors/ChannelSelector.cpp
+++ b/Source/Processors/Editors/ChannelSelector.cpp
@@ -27,6 +27,7 @@
 #include "../RecordNode.h"
 #include "../AudioNode.h"
 #include "../ProcessorGraph.h"
+#include "../../UI/GraphViewer.h"
 
 ChannelSelector::ChannelSelector(bool createButtons, Font& titleFont_) :
     eventsOnly(false), paramsToggled(true), paramsActive(true),
@@ -594,6 +595,8 @@ void ChannelSelector::buttonClicked(Button* button)
                 ch->setRecordState(status);
             }
 
+            editor->getGraphViewer()->repaint();
+
         }
         else // parameter type
         {
diff --git a/Source/Processors/Editors/GenericEditor.cpp b/Source/Processors/Editors/GenericEditor.cpp
index 1e555b071eea668b88c76d5b984265c8bf3c229a..247f4a8e40c454584a077ec99ec091f1e5787775 100755
--- a/Source/Processors/Editors/GenericEditor.cpp
+++ b/Source/Processors/Editors/GenericEditor.cpp
@@ -545,6 +545,21 @@ bool GenericEditor::getRecordStatus(int chan)
     }
 }
 
+Array<bool> GenericEditor::getRecordStatusArray()
+{
+
+    Array<bool> recordStatuses;
+    recordStatuses.resize(getProcessor()->getNumOutputs());
+
+    for (int i = 0; i < getProcessor()->getNumOutputs(); i++)
+    {
+        recordStatuses.set(i,channelSelector->getRecordStatus(i));
+    }
+
+    return recordStatuses;
+
+}
+
 bool GenericEditor::getAudioStatus(int chan)
 {
     if (!isSplitOrMerge)
diff --git a/Source/Processors/Editors/GenericEditor.h b/Source/Processors/Editors/GenericEditor.h
index 9b13110754acd799b17a300e44a8c621231a5bab..c905758fb2d3162b01edfdf03d845e42e348da26 100755
--- a/Source/Processors/Editors/GenericEditor.h
+++ b/Source/Processors/Editors/GenericEditor.h
@@ -287,6 +287,9 @@ public:
 
     /** Returns the editors a splitter or merger is connected to */
 	virtual Array<GenericEditor*> getConnectedEditors(){ Array<GenericEditor*> a; return a;}
+
+    /** Returns an array of record statuses for all channels. Used by GraphNode */
+    Array<bool> getRecordStatusArray();
     
 protected:
 
diff --git a/Source/Processors/GenericProcessor.cpp b/Source/Processors/GenericProcessor.cpp
index 29ad5eb9fd59fdc1f19e0157bce440a9975be5fb..4f6f14aa11b5a502e431126c8333909a2fbe8d36 100755
--- a/Source/Processors/GenericProcessor.cpp
+++ b/Source/Processors/GenericProcessor.cpp
@@ -284,7 +284,7 @@ void GenericProcessor::clearSettings()
 
     for (int i = 0; i < channels.size(); i++)
     {
-        std::cout << channels[i]->getRecordState() << std::endl;
+       // std::cout << channels[i]->getRecordState() << std::endl;
         recordStatus.set(i,channels[i]->getRecordState());
     }
 
diff --git a/Source/UI/GraphViewer.cpp b/Source/UI/GraphViewer.cpp
index edde3ac6ec481ff280eaeba478ac2a907a1af25d..fa89261f8b9809c02729857ea1d34d0cc3648fcc 100644
--- a/Source/UI/GraphViewer.cpp
+++ b/Source/UI/GraphViewer.cpp
@@ -23,6 +23,8 @@
 
 #include "GraphViewer.h"
 
+#define PI 3.14159265359
+
 GraphViewer::GraphViewer()
 {
     
@@ -433,16 +435,32 @@ void GraphNode::updateBoundaries()
 void GraphNode::paint(Graphics& g)
 {
 
+    Array<bool> recordStatuses = editor->getRecordStatusArray();
+
+    Path recordPath;
+
+    for (int i = 0; i < recordStatuses.size(); i++)
+    {
+        float stepSize = 2*PI/recordStatuses.size();
+        float startRadians = stepSize*i;
+        float endRadians = startRadians + stepSize;
+        if (recordStatuses[i])
+            recordPath.addPieSegment(0,0,20,20,startRadians,endRadians,0.5);
+    }
+    
+    g.setColour(Colours::red);
+    g.fillPath(recordPath);
+
     if (mouseOver)
     {
         g.setColour(Colours::yellow);
-        g.fillEllipse(0,0,20,20);
+        g.fillEllipse(2,2,16,16);
     } else {
         g.setColour(Colours::lightgrey);
-        g.fillEllipse(1,1,18,18);
+        g.fillEllipse(2,2,16,16);
     
     }
-    
+
     g.drawText(getName(), 25, 0, getWidth()-25, 20, Justification::left, true);
     
 }
\ No newline at end of file