diff --git a/lib/resources/script.js b/lib/resources/script.js
index 8ee6393..db4e525 100644
--- a/lib/resources/script.js
+++ b/lib/resources/script.js
@@ -29,20 +29,20 @@
 
 function saveLeftScroll() {
   var leftSidebar = document.getElementById('dartdoc-sidebar-left');
-  sessionStorage.setItem('dartdoc-sidebar-left-scrollt', leftSidebar.scrollTop);
-  sessionStorage.setItem('dartdoc-sidebar-left-scrolll', leftSidebar.scrollLeft);
+  sessionStorage.setItem('dartdoc-sidebar-left-scrollt' + window.location.pathname, leftSidebar.scrollTop);
+  sessionStorage.setItem('dartdoc-sidebar-left-scrolll' + window.location.pathname, leftSidebar.scrollLeft);
 }
 
 function saveMainContentScroll() {
   var mainContent = document.getElementById('dartdoc-main-content');
-  sessionStorage.setItem('dartdoc-main-content-scrollt', mainContent.scrollTop);
-  sessionStorage.setItem('dartdoc-main-content-scrolll', mainContent.scrollLeft);
+  sessionStorage.setItem('dartdoc-main-content-scrollt' + window.location.pathname, mainContent.scrollTop);
+  sessionStorage.setItem('dartdoc-main-content-scrolll' + window.location.pathname, mainContent.scrollLeft);
 }
 
 function saveRightScroll() {
   var rightSidebar = document.getElementById('dartdoc-sidebar-right');
-  sessionStorage.setItem('dartdoc-sidebar-right-scrollt', rightSidebar.scrollTop);
-  sessionStorage.setItem('dartdoc-sidebar-right-scrolll', rightSidebar.scrollLeft);
+  sessionStorage.setItem('dartdoc-sidebar-right-scrollt' + window.location.pathname, rightSidebar.scrollTop);
+  sessionStorage.setItem('dartdoc-sidebar-right-scrolll' + window.location.pathname, rightSidebar.scrollLeft);
 }
 
 function restoreScrolls() {
@@ -51,14 +51,14 @@
   var rightSidebar = document.getElementById('dartdoc-sidebar-right');
 
   try {
-    var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll');
-    var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt');
+    var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll' + window.location.pathname);
+    var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt' + window.location.pathname);
 
-    var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll');
-    var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt');
+    var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll' + window.location.pathname);
+    var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt' + window.location.pathname);
 
-    var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll');
-    var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt');
+    var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll' + window.location.pathname);
+    var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt' + window.location.pathname);
 
     leftSidebar.scrollTo(leftSidebarX, leftSidebarY);
     mainContent.scrollTo(mainContentX, mainContentY);
@@ -78,8 +78,6 @@
   var rightSidebar = document.getElementById('dartdoc-sidebar-right');
 
   // For portablility, use two different ways of attaching saveLeftScroll to events.
-  // Keep the scroll position from expiring from the cache for a page that's been displayed
-  // a long time but not moved by re-saving its position every hour.
   leftSidebar.onscroll = saveLeftScroll;
   leftSidebar.addEventListener("scroll", saveLeftScroll, true);
   mainContent.onscroll = saveMainContentScroll;
