diff --git a/editors/ckeditor/linkitDialog.js b/editors/ckeditor/linkitDialog.js
index 629ae21..95f590b 100644
--- a/editors/ckeditor/linkitDialog.js
+++ b/editors/ckeditor/linkitDialog.js
@@ -4,10 +4,15 @@
  */
 var LinkitDialog = {
   init : function() {
-    //Get CKEDITOR
-    CKEDITOR = dialogArguments.opener.CKEDITOR;
-    //Get the current instance name
-    var name = dialogArguments.editorname;
+    //Get CKEDITOR and current instance name
+    if (typeof(dialogArguments) != 'undefined') {
+      CKEDITOR = dialogArguments.opener.CKEDITOR;
+      var name = dialogArguments.editorname;
+    } else {
+      CKEDITOR = window.opener.CKEDITOR;
+      var name = decodeURI((RegExp('editorname=(.+?)(&|$)').exec(location.search)||[,null])[1]);
+    }
+
     //Get the editor instance
     editor = CKEDITOR.instances[name];
     //Get the selected element
diff --git a/editors/ckeditor/plugin.js b/editors/ckeditor/plugin.js
index 99cd4a9..d68e953 100644
--- a/editors/ckeditor/plugin.js
+++ b/editors/ckeditor/plugin.js
@@ -19,7 +19,11 @@
       editor.addCommand( 'Linkit', {
         exec : function () {
           var path = (Drupal.settings.linkit.url.wysiwyg_ckeditor) ? Drupal.settings.linkit.url.wysiwyg_ckeditor : Drupal.settings.linkit.url.ckeditor
-          var media = window.showModalDialog(path, { 'opener' : window, 'editorname' : editor.name }, "dialogWidth:750px; dialogHeight:320px; center:yes; resizable:yes; help:no;");
+          if (window.showModalDialog) {
+            var media = window.showModalDialog(path, { 'opener' : window, 'editorname' : editor.name }, "dialogWidth:750px; dialogHeight:320px; center:yes; resizable:yes; help:no;");
+          } else {
+            var media = window.open(path + (path.indexOf('?') == -1 ? '?' : '&') + 'editorname='+encodeURI(editor.name), null, "width=750,height=320,resizable,alwaysRaised,dependent,toolbar=no,location=no,menubar=no");
+          }
         }
       });
       
