diff --git a/Source/Processors/AudioNode.cpp b/Source/Processors/AudioNode.cpp
index 3d516ee6ddc1b552cae5da1e4ff4da4b42a708d2..802077e0a3f3830b6974f52eb73e041c9f440c22 100755
--- a/Source/Processors/AudioNode.cpp
+++ b/Source/Processors/AudioNode.cpp
@@ -55,6 +55,8 @@ AudioProcessorEditor* AudioNode::createEditor()
 {
 
     audioEditor = new AudioEditor(this);
+    //audioEditor->setUIComponent(getUIComponent());
+    //audioEditor->updateBufferSizeText();
 
     //setEditor(editor);
 
@@ -72,6 +74,13 @@ void AudioNode::resetConnections()
 
 }
 
+void AudioNode::updateBufferSize()
+{
+    AudioEditor* editor = (AudioEditor*) getEditor();
+    editor->updateBufferSizeText();
+    
+}
+
 void AudioNode::setChannel(Channel* ch)
 {
 
diff --git a/Source/Processors/AudioNode.h b/Source/Processors/AudioNode.h
index 48a1c19105cb60da50cfbcf5e49b8cd3c97cb1ce..4cdbb6614e8ad22b1df15ec0eca4ee3f830fc25a 100755
--- a/Source/Processors/AudioNode.h
+++ b/Source/Processors/AudioNode.h
@@ -93,6 +93,8 @@ public:
 
     /** A pointer to the AudioNode's editor. */
     ScopedPointer<AudioEditor> audioEditor;
+    
+    void updateBufferSize();
 
 private:
 
diff --git a/Source/Processors/Editors/AudioEditor.cpp b/Source/Processors/Editors/AudioEditor.cpp
index de5df16313072dc4b6035965f6d655bda2dd2562..fd40547588e1606c545273a50a6dd30069a1f399 100755
--- a/Source/Processors/Editors/AudioEditor.cpp
+++ b/Source/Processors/Editors/AudioEditor.cpp
@@ -50,10 +50,12 @@ AudioWindowButton::AudioWindowButton()
 {
     setClickingTogglesState(true);
 
-    MemoryInputStream mis(BinaryData::silkscreenserialized, BinaryData::silkscreenserializedSize, false);
-    Typeface::Ptr typeface = new CustomTypeface(mis);
-    font = Font(typeface);
-    font.setHeight(12);
+    //MemoryInputStream mis(BinaryData::silkscreenserialized, BinaryData::silkscreenserializedSize, false);
+    //Typeface::Ptr typeface = new CustomTypeface(mis);
+    font = Font("Small Text", 12, Font::plain); //Font(typeface);
+    //font.setHeight(12);
+    textString = "AUDIO";
+    setTooltip("Change the buffer size");
 }
 
 AudioWindowButton::~AudioWindowButton()
@@ -69,7 +71,12 @@ void AudioWindowButton::paintButton(Graphics& g, bool isMouseOver, bool isButton
 
     g.setFont(font);
     //g.drawSingleLineText(" AUDIO",0,0);
-    g.drawSingleLineText("AUDIO",0,15);
+    g.drawSingleLineText(textString,0,15);
+}
+
+void AudioWindowButton::setText(String text)
+{
+    textString = text;
 }
 
 AudioEditor::AudioEditor(AudioNode* owner)
@@ -85,6 +92,9 @@ AudioEditor::AudioEditor(AudioNode* owner)
     audioWindowButton = new AudioWindowButton();
     audioWindowButton->addListener(this);
     audioWindowButton->setToggleState(false,false);
+    
+    //AccessClass* audioNode = (AccessClass*) getAudioProcessor();
+    //
     addAndMakeVisible(audioWindowButton);
 
     volumeSlider = new Slider("High-Cut Slider");
@@ -107,8 +117,8 @@ AudioEditor::~AudioEditor()
 void AudioEditor::resized()
 {
     muteButton->setBounds(0,0,30,25);
-    volumeSlider->setBounds(35,0,100,getHeight());
-    audioWindowButton->setBounds(140,0,200,getHeight());
+    volumeSlider->setBounds(35,0,50,getHeight());
+    audioWindowButton->setBounds(90,0,200,getHeight());
 }
 
 bool AudioEditor::keyPressed(const KeyPress& key)
@@ -118,6 +128,12 @@ bool AudioEditor::keyPressed(const KeyPress& key)
 }
 
 
+void AudioEditor::updateBufferSizeText()
+{
+    // currently crashing
+   // audioWindowButton->setText(String(getAudioComponent()->getBufferSize()));
+}
+
 void AudioEditor::buttonClicked(Button* button)
 {
     if (button == muteButton)
@@ -146,7 +162,7 @@ void AudioEditor::buttonClicked(Button* button)
                 // audioComponent->restartDevice();
 
                 // if (audioComponent != 0) {
-                acw = new AudioConfigurationWindow(getAudioComponent()->deviceManager, (Button*) audioWindowButton);
+                acw = new AudioConfigurationWindow(getAudioComponent()->deviceManager, audioWindowButton);
                 acw->setUIComponent(getUIComponent());
                 //}
             }
@@ -157,7 +173,7 @@ void AudioEditor::buttonClicked(Button* button)
         }
         else
         {
-
+            audioWindowButton->setText(String(getAudioComponent()->getBufferSize()));
             acw->setVisible(false);
             //deleteAndZero(acw);
             getAudioComponent()->stopDevice();
@@ -179,7 +195,7 @@ void AudioEditor::paint(Graphics& g)
 
 
 
-AudioConfigurationWindow::AudioConfigurationWindow(AudioDeviceManager& adm, Button* cButton)
+AudioConfigurationWindow::AudioConfigurationWindow(AudioDeviceManager& adm, AudioWindowButton* cButton)
     : DocumentWindow("Audio Settings",
                      Colours::red,
                      DocumentWindow::closeButton),
@@ -220,6 +236,7 @@ AudioConfigurationWindow::~AudioConfigurationWindow()
 void AudioConfigurationWindow::closeButtonPressed()
 {
     controlButton->setToggleState(false,false);
+    controlButton->setText(String(getAudioComponent()->getBufferSize()));
     getAudioComponent()->stopDevice();
     setVisible(false);
 }
diff --git a/Source/Processors/Editors/AudioEditor.h b/Source/Processors/Editors/AudioEditor.h
index f84b3659ef2b6d2741efcb3ccae817dd405823f1..926db62d98c6b04da4574670b1307a526804da60 100755
--- a/Source/Processors/Editors/AudioEditor.h
+++ b/Source/Processors/Editors/AudioEditor.h
@@ -58,8 +58,10 @@ public:
     AudioWindowButton();
     ~AudioWindowButton();
     void paintButton(Graphics& g, bool isMouseOver, bool isButtonDown);
+    void setText(String);
 private:
     Font font;
+    String textString;
 };
 
 /**
@@ -73,7 +75,7 @@ class AudioConfigurationWindow : public DocumentWindow,
     public AccessClass
 {
 public:
-    AudioConfigurationWindow(AudioDeviceManager& adm, Button* b);
+    AudioConfigurationWindow(AudioDeviceManager& adm, AudioWindowButton* b);
     ~AudioConfigurationWindow();
 
     void paint(Graphics& g);
@@ -83,7 +85,7 @@ private:
 
     void closeButtonPressed();
 
-    Button* controlButton;
+    AudioWindowButton* controlButton;
 
 };
 
@@ -109,6 +111,8 @@ public:
     bool keyPressed(const KeyPress& key);
 
     void resized();
+    
+    void updateBufferSizeText();
 
 private:
 
diff --git a/Source/Processors/ProcessorGraph.cpp b/Source/Processors/ProcessorGraph.cpp
index e929c69fc1d76b45cd5e63cad9e926e607f49e30..c380fce118816e7abfe22daa937599d8414697c5 100644
--- a/Source/Processors/ProcessorGraph.cpp
+++ b/Source/Processors/ProcessorGraph.cpp
@@ -118,6 +118,7 @@ void ProcessorGraph::createDefaultNodes()
 void ProcessorGraph::updatePointers()
 {
     getAudioNode()->setUIComponent(getUIComponent());
+    getAudioNode()->updateBufferSize();
     getRecordNode()->setUIComponent(getUIComponent());
 }
 
diff --git a/Source/UI/UIComponent.cpp b/Source/UI/UIComponent.cpp
index 60b253f605345638c3a38e27ea24d73eee07a07e..63298a814eee151351728d68882de48f6b571b78 100755
--- a/Source/UI/UIComponent.cpp
+++ b/Source/UI/UIComponent.cpp
@@ -74,12 +74,14 @@ UIComponent::UIComponent(MainWindow* mainWindow_, ProcessorGraph* pgraph, AudioC
     std::cout << "Finished UI stuff." << std::endl << std::endl << std::endl;
 
     processorGraph->setUIComponent(this);
-    processorGraph->updatePointers(); // needs to happen after processorGraph gets the right pointers
+    
     processorList->setUIComponent(this);
     editorViewport->setUIComponent(this);
     dataViewport->setUIComponent(this);
     controlPanel->getAudioEditor()->setUIComponent(this);
     controlPanel->setUIComponent(this);
+    
+    processorGraph->updatePointers(); // needs to happen after processorGraph gets the right pointers
 
     //processorGraph->sendActionMessage("Test.");