diff --git a/app/assets/javascripts/web-dev-listener.js b/app/assets/javascripts/web-dev-listener.js
index cc67305de..112ed1aa8 100644
--- a/app/assets/javascripts/web-dev-listener.js
+++ b/app/assets/javascripts/web-dev-listener.js
@@ -35,6 +35,8 @@ function receiveMessage(event) {
     case 'create':
         create(_.pick(data, 'dom', 'styles', 'scripts'));
         checkGoals(data.goals, source, origin);
+        $('body').first().off('click', checkRememberedGoals);
+        $('body').first().on('click', checkRememberedGoals);
         break;
     case 'update':
         if (virtualDom)
@@ -108,7 +110,13 @@ function update(options) {
     virtualScripts = scripts;
 }
 
+var lastGoalArgs = [];
+function checkRememberedGoals() {
+    checkGoals.apply(this, lastGoalArgs);
+}
+
 function checkGoals(goals, source, origin) {
+    lastGoalArgs = [goals, source, origin]; // Memoize for checkRememberedGoals
     // Check right now and also in one second, since our 1-second CSS transition might be affecting things until it is done.
     doCheckGoals(goals, source, origin);
     _.delay(function() { doCheckGoals(goals, source, origin); }, 1001);