diff --git a/core/modules/overlay/overlay-child.css b/core/modules/overlay/overlay-child.css
index 48f217d..02c3baa 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..380a06c 100644
--- a/core/modules/overlay/overlay-parent.css
+++ b/core/modules/overlay/overlay-parent.css
@@ -53,3 +53,14 @@ html.overlay-open .displace-bottom {
 html.overlay-open #overlay-disable-message {
   display: block;
 }
+
+/* Fixing overlay with toolbar display */
+.toolbar-vertical #overlay-container{
+  position: relative;
+  top: -100%;
+  margin-top: -39px;
+}
+/* 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;
     }
