diff --git a/lib/scripts/media.js b/lib/scripts/media.js
index 89925d8c81dbdea6e7e1806f3563809a6a539503..70807bda24fc65afbac20f719e623097265398a2 100644
--- a/lib/scripts/media.js
+++ b/lib/scripts/media.js
@@ -272,7 +272,8 @@ var dw_mediamanager = {
         cb = String.prototype.match.call(document.location, /&onselect=([^&]+)/);
         cb = cb ? cb[1].replace(/[^\w]+/, '') : 'dw_mediamanager_item_select';
 
-        opener[cb](edid, id, opts, dw_mediamanager.align);
+        // arguments here only match the dw_mediamanager_item_select function, these will need to change if you override cb with onselect GET param
+        opener[cb](edid, id, opts, dw_mediamanager.align, dw_mediamanager.keepopen);
         if (!dw_mediamanager.keepopen) {
             window.close();
         }
@@ -937,15 +938,18 @@ var dw_mediamanager = {
  * @param {string} opts
  * @param {string} align [none, left, center, right]
  */
-function dw_mediamanager_item_select(edid, mediaid, opts, align) {
+function dw_mediamanager_item_select(edid, mediaid, opts, align, keepopen) {
     var alignleft = '';
     var alignright = '';
     if (align !== '1') {
         alignleft = align === '2' ? '' : ' ';
         alignright = align === '4' ? '' : ' ';
     }
-
-    insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', '');
+    if (keepopen) {
+        insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|}}', '', '');
+    } else {
+        insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', '');
+    }
 }
 
 jQuery(dw_mediamanager.init);