diff --git a/css/serialMonitor.css b/css/serialMonitor.css
index 662a7ace683f9923b9ea3c7be2fec0e01bcaa6a3..17fb0a908b90ecae525f73b8f0ace5eb43c1f612 100644
--- a/css/serialMonitor.css
+++ b/css/serialMonitor.css
@@ -1,4 +1,8 @@
-  #sendSerialMessage {
+body {
+    overflow: hidden;
+}  
+
+#sendSerialMessage {
     position: absolute;
     bottom: 0px;
     border-radius: 0px;
diff --git a/js/SerialMonitor/SerialMonitorView.js b/js/SerialMonitor/SerialMonitorView.js
index 20614e21abf7b821c138ba640f58c2171a27588c..27e6fceaab08361f25aba05a217a3e8baa1532cc 100644
--- a/js/SerialMonitor/SerialMonitorView.js
+++ b/js/SerialMonitor/SerialMonitorView.js
@@ -11,11 +11,17 @@ define(['jquery', 'underscore', 'commParentMenu', 'serialComm', 'text!SerialMoni
         el: "#serialMonitorView",
 
         events: {
-            "click #clearMonitor":                         "_clear",
+            "click #clearMonitor":                         "render",
             "change input:checkbox":                       "_clickCheckbox"
         },
 
         __initialize: function(){
+
+            this.listenTo(serialComm, "change:baudRate change:portName", this.render);
+            this.listenTo(serialComm, "change:connected", function(){
+                if (!serialComm.get("connected")) this._close();
+            })
+
             this.render();
         },
 
@@ -57,11 +63,6 @@ define(['jquery', 'underscore', 'commParentMenu', 'serialComm', 'text!SerialMoni
             return this.model.toJSON();
         },
 
-        _clear: function(e){
-            e.preventDefault();
-            $("#serialMonitorOutput").html("");
-        },
-
         __sendMessage: function(message){
             this._addOutputData("<span class='outgoing'>" + message + "</span><br/>");
         },
@@ -76,6 +77,10 @@ define(['jquery', 'underscore', 'commParentMenu', 'serialComm', 'text!SerialMoni
             if (this.model.get("autoscroll")) $output.animate({scrollTop:$output.scrollTop()+$output.innerHeight()}, "fast");
         },
 
+        _close: function(){
+            window.close();
+        },
+
         template: _.template(template)
 
     });
diff --git a/js/menus/CommParentMenu.js b/js/menus/CommParentMenu.js
index 3d802d5e5c0702a5bb8a1430b33d5d6279095774..350e98e5db0274a84f4e5fcb0da1b8a8d983cfc6 100644
--- a/js/menus/CommParentMenu.js
+++ b/js/menus/CommParentMenu.js
@@ -42,6 +42,7 @@ define(['jquery', 'underscore', 'menuParent', 'plist', 'serialComm', 'commPlist'
 
         _updateIncomingMessage: function(){
             var message = serialComm.get("lastMessageReceived");
+            console.log(message);
             var $message = $("#incomingSerialMessage");
             $message.html(message);
             $message.css("background", "#ffff99");
diff --git a/js/menus/SendMenuView.js b/js/menus/SendMenuView.js
index db880c61617778b2630a6d8baa3bbf4e5685634b..57da9db0111e778b1064ff47a60554d7c7863530 100644
--- a/js/menus/SendMenuView.js
+++ b/js/menus/SendMenuView.js
@@ -51,7 +51,6 @@ define(['jquery', 'underscore', 'commParentMenu', 'serialComm', 'commPlist', 'te
         },
 
         _makeTemplateJSON: function(){
-            console.log("render");
             return _.extend(serialComm.toJSON(), commPlist, cam.toJSON(), camPlist, {streaming: this.isStreaming});
         },
 
diff --git a/js/menus/SetupCommMenuView.js b/js/menus/SetupCommMenuView.js
index 759fbad8bfe55335c4426f6ec53894b7863b3634..6c569e1683b4f395d6d32efd363428e382bf3d1a 100644
--- a/js/menus/SetupCommMenuView.js
+++ b/js/menus/SetupCommMenuView.js
@@ -53,7 +53,6 @@ define(['jquery', 'underscore', 'commParentMenu', 'serialComm', 'text!setupCommM
         },
 
         _makeTemplateJSON: function(){
-            console.log("render");
             return _.extend(serialComm.toJSON(), commPlist);
         },
 
diff --git a/js/menus/templates/SetupCommMenuView.html b/js/menus/templates/SetupCommMenuView.html
index 648e085b561c1b8c6d1a30eb35168ceedc0609d7..6490b72f808c7c17c1b4d71cd6b4eb35ad4933ea 100644
--- a/js/menus/templates/SetupCommMenuView.html
+++ b/js/menus/templates/SetupCommMenuView.html
@@ -23,7 +23,7 @@
         </div>
         &nbsp;&nbsp;<a href="#" id="refreshPorts" class="btn btn-lg btn-default btn-icon"><img src="assets/imgs/refreshIcon.png"></a><br/><br/>
     <a href="#" id="openSerialMonitor" class="btn btn-block btn-lg btn-default">Open Serial Monitor</a><br/>
-    Incoming: &nbsp;&nbsp;<pre id="incomingSerialMessage"></pre><br/><br/>
+    Incoming: &nbsp;&nbsp;<pre id="incomingSerialMessage"><br/></pre><br/>
     Out: &nbsp;&nbsp;<input id="sendSerialMessage" value="" placeholder="Send Message" class="seventyFiveWidth form-control unresponsiveInput" type="text"><br/><br/>
     <a href="#" id="serialFlushBuffer" class="btn btn-block btn-lg btn-danger">Flush Buffer</a><br/>
 <% }else{ %>
diff --git a/js/models/SerialComm.js b/js/models/SerialComm.js
index ffe090f6c3a4b2cf5f343fd4a7bb2d80d9537191..1f9949a836874587d52979cbe34ea8d3c9baada4 100644
--- a/js/models/SerialComm.js
+++ b/js/models/SerialComm.js
@@ -24,7 +24,7 @@ define(['underscore', 'backbone', 'socketio'], function(_, Backbone, io){
         attemptToConnectToNode: function(){
             if (!this.get("connected")) {
                 this.socket = io.connect('http://localhost:8080', {'forceNew':true});
-                addEventHandlers(this.socket);
+                addEventHandlers(this.socket);//if we're not in the serial monitor window
             }
         },
 
diff --git a/node/nodeServer.js b/node/nodeServer.js
index e6de354491431435e5a674dceb5032ca5bf82668..6f7312a9415605fd3685dcc6303a36cf6c5d5235 100644
--- a/node/nodeServer.js
+++ b/node/nodeServer.js
@@ -21,7 +21,7 @@ var currentPort = null;
 var baudRate = 115200;
 
 //io.sockets.on('connection', function (socket) {
-//    socket.emit('baudRate', baudRate);
+//    io.emit('baudRate', baudRate);
 //});
 
 
@@ -92,7 +92,7 @@ io.on('connection', function(socket){
             if (!portName && _allPorts.length>0) portName = _allPorts[0];
             if (callback) callback(allPorts, portName, baudRate);
 
-            socket.emit('connected', {
+            io.emit('connected', {
                 baudRate: baudRate,
                 portName: portName,
                 availablePorts: _allPorts
@@ -138,19 +138,19 @@ io.on('connection', function(socket){
                     onPortError(error);
                     return null;
                 }
-                socket.emit("portDisconnected", {baudRate:oldBaud, portName:oldName});
+                io.emit("portDisconnected", {baudRate:oldBaud, portName:oldName});
             });
         }
         return initPort(_portName, _baudRate);
     }
 
     function onPortOpen(name, baud){
-        socket.emit("portConnected", {baudRate:baud, portName:name});
+        io.emit("portConnected", {baudRate:baud, portName:name});
     }
 
     function onPortData(data){
         console.log(data);
-        socket.emit("dataIn", data);
+        io.emit('dataIn', data);
     }
 
     function onPortClose(){
@@ -159,7 +159,7 @@ io.on('connection', function(socket){
 
     function onPortError(error){
         console.log("Serial port error " + error);
-        socket.emit("errorMsg", {error:String(error)});
+        io.emit("errorMsg", {error:String(error)});
     }
 
 });