diff --git a/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java b/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java
index dcc2355..fdc8d06 100644
--- a/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java
+++ b/web/gui/src/main/java/org/onlab/onos/gui/TopologyViewMessages.java
@@ -188,7 +188,8 @@
         ControllerNode node = event.subject();
         ObjectNode payload = mapper.createObjectNode()
                 .put("id", node.id().toString())
-                .put("online", clusterService.getState(node.id()) == ACTIVE);
+                .put("online", clusterService.getState(node.id()) == ACTIVE)
+                .put("uiAttached", event.subject().equals(clusterService.getLocalNode()));
 
         ArrayNode labels = mapper.createArrayNode();
         labels.add(node.id().toString());
@@ -236,7 +237,7 @@
         ObjectNode payload = mapper.createObjectNode()
                 .put("id", compactLinkString(link))
                 .put("type", link.type().toString().toLowerCase())
-                .put("online", true) // link.state()) TODO: add link state field
+                .put("online", link.state() == Link.State.ACTIVE)
                 .put("linkWidth", 2)
                 .put("src", link.src().deviceId().toString())
                 .put("srcPort", link.src().port().toString())
diff --git a/web/gui/src/main/webapp/mast2.js b/web/gui/src/main/webapp/mast2.js
index 237c511..bf8694a 100644
--- a/web/gui/src/main/webapp/mast2.js
+++ b/web/gui/src/main/webapp/mast2.js
@@ -30,7 +30,7 @@
     var api = onos.api;
 
     // Config variables
-    var guiTitle = 'Open Networking Operating System';
+    var guiTitle = 'Open Network Operating System';
 
     // DOM elements and the like
     var mast = d3.select('#mast');
diff --git a/web/gui/src/main/webapp/topo2.css b/web/gui/src/main/webapp/topo2.css
index 438f265..2eb6a8e 100644
--- a/web/gui/src/main/webapp/topo2.css
+++ b/web/gui/src/main/webapp/topo2.css
@@ -108,6 +108,11 @@
     opacity: .7;
 }
 
+#topo svg .link.inactive {
+    opacity: .2;
+    stroke-dasharray: 8 4;
+}
+
 #topo svg .link.primary {
     stroke: #f11;
     stroke-width: 6px;
diff --git a/web/gui/src/main/webapp/topo2.js b/web/gui/src/main/webapp/topo2.js
index f34f247..5329545 100644
--- a/web/gui/src/main/webapp/topo2.js
+++ b/web/gui/src/main/webapp/topo2.js
@@ -826,7 +826,7 @@
         // merge in remaining data
         $.extend(lnk, link, {
             class: 'link',
-            svgClass: type ? 'link ' + type : 'link'
+            svgClass: (type ? 'link ' + type : 'link') + ' ' + (link.online ? 'active' : 'inactive')
         });
         return lnk;
     }
