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 b686aae..29fcc83 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -361,7 +361,7 @@
         // NOTE: toolbar will have set this for us..
         prefsState = ps.asNumbers(ps.getPrefs('topo_prefs'));
 
-        $log.debug('TOPO---- Prefs State:', prefsState);
+        $log.debug('TOPO- Prefs State:', prefsState);
 
         flash.enable(false);
         toggleInstances(prefsState.insts);
@@ -372,6 +372,19 @@
     }
 
 
+    // somewhat hackish, because summary update cannot happen until we
+    //  have opened the websocket to the server; hence this extra function
+    // invoked after tes.start()
+    function restoreSummaryFromPrefs() {
+        prefsState = ps.asNumbers(ps.getPrefs('topo_prefs'));
+        $log.debug('TOPO- Prefs SUMMARY State:', prefsState.summary);
+
+        flash.enable(false);
+        toggleSummary(prefsState.summary);
+        flash.enable(true);
+    }
+
+
     // --- Controller Definition -----------------------------------------
 
     angular.module('ovTopo', moduleDependencies)
@@ -463,7 +476,13 @@
                     flash.enable(false);
                     toggleMap(prefsState.bg);
                     flash.enable(true);
-                    // TODO: move tes.start() to here ????
+
+                    // now we have the map projection, we are ready for
+                    //  the server to send us device/host data...
+                    tes.start();
+                    // need to do the following so we immediately get
+                    //  the summary panel data back from the server
+                    restoreSummaryFromPrefs();
                 }
             );
             setUpSprites($loc, tspr);
@@ -472,7 +491,6 @@
             tfs.initForce(svg, forceG, uplink, dim);
             tis.initInst({ showMastership: tfs.showMastership });
             tps.initPanels();
-            tes.start();
 
             // temporary solution for persisting user settings
             restoreConfigFromPrefs();
