diff --git a/web/gui/src/main/webapp/app/view/topo/topo.js b/web/gui/src/main/webapp/app/view/topo/topo.js
index 56be9f6..df2e601 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -28,9 +28,9 @@
         'onosRemote'
     ];
 
-    // references to injected services etc.
+    // references to injected services
     var $scope, $log, $cookies, fs, ks, zs, gs, ms, sus, flash, wss, ps, th,
-        tds, tes, tfs, tps, tis, tss, tls, tts, tos, fltr, ttbs, ttip, tov;
+        tds, tes, tfs, tps, tis, tss, tls, tts, tos, fltr, ttbs, tspr, ttip, tov;
 
     // DOM elements
     var ovtopo, svg, defs, zoomLayer, mapG, spriteG, forceG, noDevsLayer;
@@ -507,7 +507,7 @@
                   _zs_, _gs_, _ms_, _sus_, _flash_, _wss_, _ps_, _th_,
                   _tds_, _tes_,
                   _tfs_, _tps_, _tis_, _tss_, _tls_, _tts_, _tos_, _fltr_,
-                  _ttbs_, tspr, _ttip_, _tov_) {
+                  _ttbs_, _tspr_, _ttip_, _tov_) {
             var params = $loc.search(),
                 projection,
                 dim,
@@ -548,6 +548,7 @@
             tos = _tos_;
             fltr = _fltr_;
             ttbs = _ttbs_;
+            tspr = _tspr_;
             ttip = _ttip_;
             tov = _tov_;
 
@@ -609,6 +610,7 @@
                     restoreSummaryFromPrefs();
                 }
             );
+            tes.bindHandlers();
             setUpSprites($loc, tspr);
 
             forceG = zoomLayer.append('g').attr('id', 'topo-force');
diff --git a/web/gui/src/main/webapp/app/view/topo/topoEvent.js b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
index 9b07f87..b1af75d 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoEvent.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoEvent.js
@@ -109,9 +109,14 @@
 
             createHandlerMap();
 
-            function start() {
-                openListener = wss.addOpenListener(wsOpen);
+            function bindHandlers() {
                 wss.bindHandlers(handlerMap);
+                $log.debug('topo event handlers bound');
+            }
+
+            function start() {
+                // in case we fail over to a new server, listen for wsock-open
+                openListener = wss.addOpenListener(wsOpen);
                 wss.sendEvent('topoStart');
                 scheduleHeartbeat();
                 $log.debug('topo comms started');
@@ -127,6 +132,7 @@
             }
 
             return {
+                bindHandlers: bindHandlers,
                 start: start,
                 stop: stop
             };
