diff --git a/opal/clearwater/application.rb b/opal/clearwater/application.rb
index <HASH>..<HASH> 100644
--- a/opal/clearwater/application.rb
+++ b/opal/clearwater/application.rb
@@ -20,6 +20,7 @@ module Clearwater
       router.set_outlets
       controller.call
       trap_clicks
+      watch_url
     end
 
     def trap_clicks
@@ -37,6 +38,19 @@ module Clearwater
           router.navigate_to href
         end
       end
+
+      def watch_url
+        @path = router.current_path
+        check_rerender = proc do
+          if @path != router.current_path
+            router.set_outlets
+            controller && controller.call
+            @path = router.current_path
+          end
+        end
+        set_interval = Native(`window.setInterval`)
+        set_interval.call check_rerender, 100
+      end
     end
   end
 end
Watch URL for changes

This helps keep us from breaking the back button. I'd like to come up
with a better way to do this, though, since executing a callback
function every <I>ms can wake up the process unnecessarily, leading to
battery drain.