diff --git modules/overlay/overlay-parent.js modules/overlay/overlay-parent.js
--- modules/overlay/overlay-parent.js
+++ modules/overlay/overlay-parent.js
@@ -7,6 +7,25 @@
  */
 Drupal.behaviors.overlayParent = {
   attach: function (context, settings) {
+    var toolbar = $('#toolbar');
+    var $window = $(window);
+
+    // Update the top position of the toolbar with an hide/show animation.
+    $window.scroll(function () {
+      // Only update the position if the overlay is active.
+      if (Drupal.overlay.iframe.documentSize) {
+        var scrollOffset = $window.scrollTop();
+        toolbar
+        .stop()
+        .hide()
+        .animate({
+          top: scrollOffset
+        }, function () {
+          toolbar.fadeIn('fast');
+        });
+      }
+    });
+
     // Alter all admin links so that they will open in the overlay.
     $('a', context).filter(function () {
       return Drupal.overlay.isAdminLink(this.href);
@@ -42,7 +61,7 @@
     this.processed = true;
 
     // When the hash (URL fragment) changes, open the overlay if needed.
-    $(window).bind('hashchange', function (e) {
+    $window.bind('hashchange', function (e) {
       // If we changed the hash to reflect an internal redirect in the overlay,
       // its location has already been changed, so don't do anything.
       if ($.data(window.location, window.location.href) === 'redirect') {
@@ -56,7 +75,7 @@
 
     // Trigger the hashchange event once, after the page is loaded, so that
     // permalinks open the overlay.
-    $(window).trigger('hashchange');
+    $window.trigger('hashchange');
   }
 };
 
@@ -98,6 +117,9 @@
   if (self.isOpen || $('#overlay-container').size()) {
     return false;
   }
+  
+  // Set the toolbar to position:absolute to ensure smooth scrolling.
+  $('#toolbar').css('position', 'absolute');
 
   var defaultOptions = {
     url: options.url,
@@ -309,6 +331,13 @@
     if (!$.isObject(self.iframe.$container)) {
       return;
     }
+
+    // Reset position:fixed and top:0px for the toolbar.
+    $('#toolbar').css({
+      'position' : 'fixed',
+      'top' : '0px'
+    });
+
     self.beforeCloseEnabled = true;
     self.iframe.$container.dialog('close');
     if ($.isFunction(self.options.onOverlayClose)) {
