diff --git a/qml/ApmToolBar.qml b/qml/ApmToolBar.qml
index 393e4c3bf980ee98759bbb970f9b67ddac5eec5d..75fa879257d9fb09861de621cba4ffbc4e74657f 100644
--- a/qml/ApmToolBar.qml
+++ b/qml/ApmToolBar.qml
@@ -10,7 +10,7 @@ Rectangle {
     property alias baudrateLabel: baudrate.label
     property bool connected: false
 
-    width: 1024 < parent.width ? 1024 : parent.width
+    width: toolbar.width
     height: 72
     color: "black"
     border.color: "black"
@@ -19,9 +19,11 @@ Rectangle {
         if (connected){
             console.log("APM Tool BAR QML: connected")
             connectButton.image = "./resources/apmplanner/toolbar/disconnect.png"
+            connectButton.label = "CONNECT"
         } else {
             console.log("APM Tool BAR QML: disconnected")
             connectButton.image = "./resources/apmplanner/toolbar/connect.png"
+            connectButton.label = "DISCONNECT"
         }
     }
 
@@ -83,7 +85,7 @@ Rectangle {
         }
 
         Button {
-            id: simualtionView
+            id: simulationView
             label: "SIMULATION"
             image: "./resources/apmplanner/toolbar/simulation.png"
             onClicked: globalObj.triggerSimulationView()
@@ -102,6 +104,8 @@ Rectangle {
             color: "black"
         }
 
+// [BB] Commented out ToolBar Status info work.
+//      WIP: To be fixed later
 //            DigitalDisplay { // Information Pane
 //                title:"Mode"
 //                textValue: "Stabilize"
@@ -169,7 +173,6 @@ Rectangle {
         }
 
         Rectangle { // Spacer
-            anchors.right: parent.right
             width: 5
             height: parent.height
             color: "black"
diff --git a/src/comm/SerialLink.cc b/src/comm/SerialLink.cc
index 0091e434af9950d432f38f64cfa310c78548092a..0f50e912f5254292910756866650d31e3e34e8b8 100644
--- a/src/comm/SerialLink.cc
+++ b/src/comm/SerialLink.cc
@@ -97,7 +97,14 @@ QVector<QString>* SerialLink::getCurrentPorts()
     m_ports->clear();
     // Example use QSerialPortInfo
     // [TODO] make this thread safe
-    foreach (const QSerialPortInfo &info, QSerialPortInfo::availablePorts())
+
+    QList<QSerialPortInfo> portList =  QSerialPortInfo::availablePorts();
+
+    if( portList.count() == 0){
+        qDebug() << "No Ports Found" << m_ports;
+    }
+
+    foreach (const QSerialPortInfo &info, portList)
     {
 //        qDebug() << "PortName    : " << info.portName()
 //                 << "Description : " << info.description();
@@ -706,6 +713,7 @@ bool SerialLink::setPortName(QString portName)
             m_port->setPortName(portName);
 
         emit nameChanged(m_portName); // [TODO] maybe we can eliminate this
+        emit updateLink(this);
         return accepted;
     }
     return false;
@@ -716,12 +724,15 @@ bool SerialLink::setBaudRateType(int rateIndex)
 {
     Q_ASSERT_X(m_port != NULL, "setBaudRateType", "m_port is NULL");
     // These minimum and maximum baud rates were based on those enumerated in qserialport.h
+    bool result;
     const int minBaud = (int)QSerialPort::Baud1200;
     const int maxBaud = (int)QSerialPort::Baud115200;
 
     if (m_port && (rateIndex >= minBaud && rateIndex <= maxBaud))
     {
-        return m_port->setBaudRate(static_cast<QSerialPort::BaudRate>(rateIndex));
+        result = m_port->setBaudRate(static_cast<QSerialPort::BaudRate>(rateIndex));
+        emit updateLink(this);
+        return result;
     }
 
     return false;
@@ -743,6 +754,7 @@ bool SerialLink::setBaudRate(int rate)
         accepted = true;
         if (m_port)
             accepted = m_port->setBaudRate(rate);
+        emit updateLink(this);
     }
     return accepted;
 }
@@ -755,6 +767,7 @@ bool SerialLink::setFlowType(int flow)
         accepted = true;
         if (m_port)
             accepted = m_port->setFlowControl(static_cast<QSerialPort::FlowControl>(flow));
+        emit updateLink(this);
     }
     return accepted;
 }
@@ -784,6 +797,7 @@ bool SerialLink::setParityType(int parity)
                     accepted = false;
                     break;
                 }
+            emit updateLink(this);
         }
     }
     return accepted;
@@ -798,6 +812,7 @@ bool SerialLink::setDataBits(int dataBits)
         accepted = true;
         if (m_port)
             accepted = m_port->setDataBits(static_cast<QSerialPort::DataBits>(dataBits));
+        emit updateLink(this);
     }
     return accepted;
 }
@@ -811,6 +826,7 @@ bool SerialLink::setStopBits(int stopBits)
         accepted = true;
         if (m_port)
             accepted = m_port->setStopBits(static_cast<QSerialPort::StopBits>(stopBits));
+        emit updateLink(this);
     }
     return accepted;
 }
@@ -823,6 +839,7 @@ bool SerialLink::setDataBitsType(int dataBits)
         accepted = true;
         if (m_port)
             accepted = m_port->setDataBits(static_cast<QSerialPort::DataBits>(dataBits));
+        emit updateLink(this);
     }
     return accepted;
 }
@@ -835,6 +852,7 @@ bool SerialLink::setStopBitsType(int stopBits)
         accepted = true;
         if (m_port)
             accepted = m_port->setStopBits(static_cast<QSerialPort::StopBits>(stopBits));
+        emit updateLink(this);
     }
     return accepted;
 }
diff --git a/src/comm/SerialLink.h b/src/comm/SerialLink.h
index 9a31cc8ca34f7e7a648d1e60b1acbb126a384aac..cab1e91d7a485b00e298c996f7c77eda8f527480 100644
--- a/src/comm/SerialLink.h
+++ b/src/comm/SerialLink.h
@@ -112,6 +112,9 @@ public:
     bool isFullDuplex();
     int getId();
 
+signals: //[TODO] Refactor to Linkinterface
+    void updateLink(LinkInterface*);
+
 public slots:
     bool setPortName(QString portName);
     bool setBaudRate(int rate);
diff --git a/src/ui/apmtoolbar.cpp b/src/ui/apmtoolbar.cpp
index 56fd991a0a7a2f4ac7047773425aa0ffe0e2d830..42e85ddc91a83a19e7797a53fa7fb694e6ce9f06 100644
--- a/src/ui/apmtoolbar.cpp
+++ b/src/ui/apmtoolbar.cpp
@@ -143,6 +143,8 @@ void APMToolBar::showConnectionDialog()
     if (link && LinkManager::instance()->getLinks().count() >= 3)
     {
         // Serial Link so prompt to config it
+        connect(link, SIGNAL(updateLink(LinkInterface*)),
+                             this, SLOT(updateLinkDisplay(LinkInterface*)));
         result = MainWindow::instance()->configLink(link);
 
         if (!result)