diff --git a/resources/static/common/js/screens.js b/resources/static/common/js/screens.js
index d4f991ecc646485331c03b6dd1506a9667fafcc7..d852bb9826cbf61dbc32519f5a9da10a0bd07c7b 100644
--- a/resources/static/common/js/screens.js
+++ b/resources/static/common/js/screens.js
@@ -22,6 +22,12 @@ BrowserID.Screens = (function() {
         // extendedInfo takes care of info that is on a screen but hidden by
         // default.  When the user clicks the "open extended info" button, it
         // is displayed to them.
+
+        if (self.extendedInfo) {
+          // sometimes a screen is overwritten and never hidden.  When this
+          // happens, old extendedInfos need to be torn down.
+          self.extendedInfo.stop();
+        }
         self.extendedInfo = bid.Modules.ExtendedInfo.create();
         self.extendedInfo.start({ target: target });