diff --git a/lib/scripts/media.js b/lib/scripts/media.js
index 2995addfd0f41d335d2831a9c775e9f7e91afa3b..dc0191d4927971ea43d8682213477e0bfd2aea9b 100644
--- a/lib/scripts/media.js
+++ b/lib/scripts/media.js
@@ -214,14 +214,12 @@ var dw_mediamanager = {
      * @author Pierre Spring <pierre.spring@caillou.ch>
      */
     insert: function (id) {
-        var opts, alignleft, alignright, edid, s;
+        var opts, cb, edid, s;
 
         // set syntax options
         dw_mediamanager.$popup.dialog('close');
 
         opts = '';
-        alignleft = '';
-        alignright = '';
 
         if ({img: 1, swf: 1}[dw_mediamanager.ext] === 1) {
 
@@ -254,16 +252,14 @@ var dw_mediamanager = {
                         }
                     }
                 }
-                if (dw_mediamanager.align !== '1') {
-                    alignleft = dw_mediamanager.align === '2' ? '' : ' ';
-                    alignright = dw_mediamanager.align === '4' ? '' : ' ';
-                }
             }
         }
         edid = String.prototype.match.call(document.location, /&edid=([^&]+)/);
-        opener.insertTags(edid ? edid[1] : 'wiki__text',
-                          '{{'+alignleft+id+opts+alignright+'|','}}','');
+        edid = edid ? edid[1] : 'wiki__text';
+        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);
         if(!dw_mediamanager.keepopen) {
             window.close();
         }
@@ -271,6 +267,8 @@ var dw_mediamanager = {
         return false;
     },
 
+
+
     /**
      * Prefills the wikiname.
      *
@@ -921,4 +919,25 @@ var dw_mediamanager = {
     }
 };
 
+/**
+ * Default implementation for the media manager's select action
+ *
+ * Can be overriden with the onselect URL parameter. Is called on the opener context
+ *
+ * @param {string} edid
+ * @param {string} mediaid
+ * @param {string} opts
+ * @param {string} align [none, left, center, right]
+ */
+function dw_mediamanager_item_select(edid, mediaid, opts, align) {
+    var alignleft = '';
+    var alignright = '';
+    if (align !== '1') {
+        alignleft = align === '2' ? '' : ' ';
+        alignright = align === '4' ? '' : ' ';
+    }
+
+    insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', '');
+}
+
 jQuery(dw_mediamanager.init);