diff --git a/lib/scripts/toolbar.js b/lib/scripts/toolbar.js
index 1bb02b406162a94b633a1a0be1ebf11f24fca97e..a5f831ade4251c3b49e18190dbb7527fd1968a04 100644
--- a/lib/scripts/toolbar.js
+++ b/lib/scripts/toolbar.js
@@ -243,7 +243,20 @@ function pickerToggle(pickerid,$btn){
     } else {
         $picker.addClass('a11y').attr('aria-hidden', 'true');
     }
-    $picker.offset({left: pos.left+3, top: pos.top+$btn[0].offsetHeight+3});
+    var picker_left = pos.left + 3,
+        picker_width = $picker.width(),
+        window_width = jQuery(window).width();
+    if (picker_width > 300) {
+        $picker.css("max-width", "300");
+        picker_width = 300;
+    }
+    if ((picker_left + picker_width + 40) > window_width) {
+        picker_left = window_width - picker_width - 40;
+    }
+    if (picker_left < 0) {
+        picker_left = 0;
+    }
+    $picker.offset({left: picker_left, top: pos.top+$btn[0].offsetHeight+3});
 }
 
 /**