--- editors/ckeditor/plugin.js.orig	2011-05-10 01:03:14.000000000 +0400
+++ editors/ckeditor/plugin.js	2011-05-10 02:02:23.000000000 +0400
@@ -20,7 +20,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");
+	  }
         }
       });
       
--- editors/ckeditor/linkitDialog.js.orig	2011-05-10 01:31:33.000000000 +0400
+++ editors/ckeditor/linkitDialog.js	2011-05-10 02:06:35.000000000 +0400
@@ -5,10 +5,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
