diff --git a/web/gui/src/main/webapp/app/fw/layer/flash.js b/web/gui/src/main/webapp/app/fw/layer/flash.js
index 5ae0ca9..0d95b77 100644
--- a/web/gui/src/main/webapp/app/fw/layer/flash.js
+++ b/web/gui/src/main/webapp/app/fw/layer/flash.js
@@ -41,7 +41,8 @@
     // internal state
     var settings,
         timer = null,
-        data = [];
+        data = [],
+        enabled;
 
     // DOM elements
     var flashDiv, svg;
@@ -123,6 +124,8 @@
     }
 
     function flash(msg) {
+        if (!enabled) return;
+
         if (timer) {
             $timeout.cancel(timer);
         }
@@ -136,6 +139,10 @@
         updateFlash();
     }
 
+    function enable(b) {
+        enabled = !!b;
+    }
+
     angular.module('onosLayer')
         .factory('FlashService', ['$log', '$timeout',
         function (_$log_, _$timeout_) {
@@ -145,11 +152,13 @@
             function initFlash(opts) {
                 settings = angular.extend({}, defaultSettings, opts);
                 flashDiv = d3.select('#flash');
+                enabled = true;
             }
 
             return {
                 initFlash: initFlash,
-                flash: flash
+                flash: flash,
+                enable: enable
             };
         }]);
 
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 2233bb2..24b40bd 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.js
+++ b/web/gui/src/main/webapp/app/view/topo/topo.js
@@ -273,10 +273,12 @@
 
         $log.debug('TOPO---- Prefs State:', prefsState);
 
+        flash.enable(false);
         toggleInstances(prefsState.insts);
         toggleSummary(prefsState.summary);
         toggleDetails(prefsState.detail);
         toggleSprites(prefsState.sprites);
+        flash.enable(true);
     }
 
 
@@ -362,7 +364,9 @@
                 function (proj) {
                     projection = proj;
                     $log.debug('** We installed the projection: ', proj);
+                    flash.enable(false);
                     toggleMap(prefsState.bg);
+                    flash.enable(true);
                 }
             );
             spriteG = zoomLayer.append ('g').attr('id', 'topo-sprites');
diff --git a/web/gui/src/main/webapp/tests/app/fw/layer/flash-spec.js b/web/gui/src/main/webapp/tests/app/fw/layer/flash-spec.js
index 0581b89..a17f9e7 100644
--- a/web/gui/src/main/webapp/tests/app/fw/layer/flash-spec.js
+++ b/web/gui/src/main/webapp/tests/app/fw/layer/flash-spec.js
@@ -47,8 +47,8 @@
 
     it('should define api functions', function () {
         expect(fs.areFunctions(flash, [
-            'initFlash', 'flash'
-        ])).toBeTruthy();
+            'initFlash', 'flash', 'enable'
+        ])).toBe(true);
     });
 
     it('should have no items to start', function () {
