Index: imce_set_tinymce.js
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/imce/imce_set_tinymce.js,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 imce_set_tinymce.js
--- imce_set_tinymce.js	15 May 2007 14:29:56 -0000	1.1.2.4
+++ imce_set_tinymce.js	18 Feb 2008 04:25:06 -0000
@@ -2,14 +2,28 @@
 if (Drupal.jsEnabled) {
   $(window).load(imceInitiateTinyMCE);
 }
+
 function imceInitiateTinyMCE() {
   if ("undefined" != typeof(window.tinyMCE)) {
-    for (var i=0; i<tinyMCE.configs.length; i++) {
-      tinyMCE.configs[i]['file_browser_callback'] = 'imceImageBrowser';
+    var version = tinymce.majorVersion +"."+ tinymce.minorVersion;
+
+    if (version >= 3) {
+      $.each(tinyMCE.editors, function() {
+        this.settings.file_browser_callback = "imceImageBrowser";
+      });
+    }
+    else {
+      for (var i=0; i<tinyMCE.configs.length; i++) {
+        tinyMCE.configs[i]['file_browser_callback'] = "imceImageBrowser";
+      }
+    }
+    if (version < 2.1) {
+      // Fix formElement issue of tinymce after 3 seconds.
+      setTimeout('for (var i in tinyMCE.instances) {var fE = tinyMCE.instances[i]["formElement"]; if (fE["tagName"]=="DIV") tinyMCE.instances[i]["formElement"] = fE.firstChild;}', 3000);
     }
-    setTimeout('for (var i in tinyMCE.instances) {var fE = tinyMCE.instances[i]["formElement"]; if (fE["tagName"]=="DIV") tinyMCE.instances[i]["formElement"] = fE.firstChild;}', 3000);//fix formElement issue of tinymce after 3sec. comment out this line if you use tinymce2.1 or above.
   }
 }
+
 var imceTinyWin, imceTinyField, imceTinyType, imceTinyURL;
 function imceImageBrowser(field_name, url, type, win) {
   //if (type!='image') return;//work for only images
