diff --git a/core/modules/overlay/overlay-child.css b/core/modules/overlay/overlay-child.css
index aa0effc..0d8ebdd 100644
--- a/core/modules/overlay/overlay-child.css
+++ b/core/modules/overlay/overlay-child.css
@@ -19,7 +19,6 @@
   display: table;
   margin: 0 auto;
   min-height: 100px;
-  min-width: 700px;
   position: relative;
   padding: .2em;
   padding-bottom: 2em;
diff --git a/core/modules/overlay/overlay-parent.css b/core/modules/overlay/overlay-parent.css
index 9459a7a..0f621cc 100644
--- a/core/modules/overlay/overlay-parent.css
+++ b/core/modules/overlay/overlay-parent.css
@@ -8,6 +8,7 @@ html.overlay-open,
 html.overlay-open body {
   height: 100%;
   overflow: hidden;
+  position: relative;
 }
 
 #overlay-container,
@@ -53,3 +54,8 @@ html.overlay-open .displace-bottom {
 html.overlay-open #overlay-disable-message {
   display: block;
 }
+
+/* Force the body's top padding */
+.overlay-open .toolbar-tray-open.toolbar-vertical {
+  padding-top:39px!important;
+}
diff --git a/core/modules/overlay/overlay-parent.js b/core/modules/overlay/overlay-parent.js
index caf9336..10807c1 100644
--- a/core/modules/overlay/overlay-parent.js
+++ b/core/modules/overlay/overlay-parent.js
@@ -488,8 +488,13 @@ Drupal.overlay.eventhandlerAlterDisplacedElements = function (event) {
 
     // Prevent displaced elements overlapping window's scrollbar.
     var currentMaxWidth = parseInt($(this).css(maxWidthName), 10);
+    // If toolbar is visible add it's width to maxWidth
+    var toolbarWidth = 0;
+    if ($(".tray.vertical.active").width()) {
+      var toolbarWidth = parseInt($(".tray.vertical.active").width(), 10);
+    }
     if ((data.drupalOverlay && data.drupalOverlay.maxWidth) || isNaN(currentMaxWidth) || currentMaxWidth > maxWidth || currentMaxWidth <= 0) {
-      $(this).css(maxWidthName, maxWidth);
+      $(this).css(maxWidthName, maxWidth + toolbarWidth);
       (data.drupalOverlay = data.drupalOverlay || {}).maxWidth = true;
     }
 
@@ -502,7 +507,9 @@ Drupal.overlay.eventhandlerAlterDisplacedElements = function (event) {
         $(this).css('clip', 'rect(auto, auto, ' + (documentHeight - offset.top) + 'px, ' + (Drupal.overlay.leftSidedScrollbarOffset + 2) + 'px)');
       }
       else {
-        $(this).css('clip', 'rect(auto, ' + (maxWidth - offset.left) + 'px, ' + (documentHeight - offset.top) + 'px, auto)');
+        if (!toolbarWidth) {
+           $(this).css('clip', 'rect(auto, ' + ((maxWidth + toolbarWidth) - offset.left) + 'px, ' + (documentHeight - offset.top) + 'px, auto)');
+        }
       }
       (data.drupalOverlay = data.drupalOverlay || {}).clip = true;
     }
