Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js	(revision 2673)
+++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js	(working copy)
@@ -122,8 +122,8 @@
 };
 HTMLArea.loadTimer;
 HTMLArea._scripts = [];
-HTMLArea._scriptLoaded = [];
-HTMLArea._request = [];
+HTMLArea.scriptLoaded = [];
+HTMLArea.ajaxRequest = [];
 HTMLArea.loadScript = function(url, plugin) {
 	if (plugin) url = _editor_url + "/plugins/" + plugin + '/' + url;
 	if (HTMLArea.is_opera) url = _typo3_host_url + url;
@@ -135,55 +135,28 @@
 if(HTMLArea.is_ie) HTMLArea.loadScript(RTEarea[0]["htmlarea-ie"] ? RTEarea[0]["htmlarea-ie"] : _editor_url + "htmlarea-ie.js");
 
 /*
- * Get a script using asynchronous XMLHttpRequest
+ * Get a script using an asynchronous request
  */
-HTMLArea.MSXML_XMLHTTP_PROGIDS = new Array("Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
-HTMLArea.XMLHTTPResponseHandler = function (i) {
-	return (function() {
+HTMLArea._getScript = function (i, asynchronous, url) {
+	if (typeof(url) === "undefined") {
 		var url = HTMLArea._scripts[i];
-		if (HTMLArea._request[i].readyState != 4) return;
-		if (HTMLArea._request[i].status == 200) { 
-			try {
-				eval(HTMLArea._request[i].responseText);
-				HTMLArea._scriptLoaded[i] = true;
-				i = null;
-			} catch (e) {
-				HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get script " + url + ": " + e);
-			}
-		} else {
-			HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get " + url + " . Server reported " + HTMLArea._request[i].status);
+	}
+	if (typeof(asynchronous) === "undefined") {
+		var asynchronous = true;
+	}
+	HTMLArea.ajaxRequest[i] = new Ajax.Request(url, {
+		asynchronous	: asynchronous,
+		method		: "get",
+		onSuccess	: function(transport) {
+			HTMLArea.scriptLoaded[i] = true;
+			return true;
+		},
+		onFailure	: function(transport) {
+			HTMLArea._appendToLog("ERROR [HTMLArea::getScript]: Unable to get " + url + " . Server reported " + HTMLArea.ajaxRequest[i].status);
+			return false;
 		}
 	});
 };
-HTMLArea._getScript = function (i,asynchronous,url) {
-	if (typeof(url) == "undefined") var url = HTMLArea._scripts[i];
-	if (typeof(asynchronous) == "undefined") var asynchronous = true;
-	if (window.XMLHttpRequest) HTMLArea._request[i] = new XMLHttpRequest();
-		else if (window.ActiveXObject) {
-			var success = false;
-			for (var k = 0; k < HTMLArea.MSXML_XMLHTTP_PROGIDS.length && !success; k++) {
-				try {
-					HTMLArea._request[i] = new ActiveXObject(HTMLArea.MSXML_XMLHTTP_PROGIDS[k]);
-					success = true;
-				} catch (e) { }
-			}
-			if (!success) return false;
-		}
-	var request = HTMLArea._request[i];
-	if (request) {
-		request.open("GET", url, asynchronous);
-		if (asynchronous) request.onreadystatechange = HTMLArea.XMLHTTPResponseHandler(i);
-		if (window.XMLHttpRequest) request.send(null);
-			else if (window.ActiveXObject) request.send();
-		if (!asynchronous) {
-			if (request.status == 200) return request.responseText;
-				else return '';
-		}
-		return true;
-	} else {
-		return false;
-	}
-};
 
 /*
  * Wait for the loading process to complete
@@ -191,7 +164,7 @@
 HTMLArea.checkInitialLoad = function() {
 	var scriptsLoaded = true;
 	for (var i = HTMLArea._scripts.length; --i >= 0;) {
-		scriptsLoaded = scriptsLoaded && HTMLArea._scriptLoaded[i];
+		scriptsLoaded = scriptsLoaded && HTMLArea.scriptLoaded[i];
 	}
 	if(HTMLArea.loadTimer) window.clearTimeout(HTMLArea.loadTimer);
 	if (scriptsLoaded) {
@@ -200,12 +173,6 @@
 		HTMLArea._appendToLog("[HTMLArea::init]: Editor url set to: " + _editor_url);
 		HTMLArea._appendToLog("[HTMLArea::init]: Editor skin CSS set to: " + _editor_CSS);
 		HTMLArea._appendToLog("[HTMLArea::init]: Editor content skin CSS set to: " + _editor_edited_content_CSS);
-		if (window.ActiveXObject) {
-			for (var i = HTMLArea._scripts.length; --i >= 0;) {
-				HTMLArea._request[i].onreadystatechange = new Function();
-				HTMLArea._request[i] = null;
-			}
-		}
 	} else {
 		HTMLArea.loadTimer = window.setTimeout("HTMLArea.checkInitialLoad();", 200);
 		return false;
@@ -218,19 +185,15 @@
 HTMLArea.init = function() {
 	HTMLArea._eventCache = HTMLArea._eventCacheConstructor();
 	if (window.XMLHttpRequest || window.ActiveXObject) {
-		try { 
-			var success = true;
-			for (var i = HTMLArea._scripts.length; --i >= 0 && success;) success = success && HTMLArea._getScript(i);
-		} catch (e) {
-			HTMLArea._appendToLog("ERROR [HTMLArea::init]: Unable to use XMLHttpRequest: "+ e);
+		for (var i = HTMLArea._scripts.length; --i >= 0;) {
+			HTMLArea._getScript(i);
 		}
-		if (success) {
-			HTMLArea.checkInitialLoad();
-		} else {
-			if (HTMLArea.is_ie) window.setTimeout('if (window.document.getElementById("pleasewait1")) { window.document.getElementById("pleasewait1").innerHTML = HTMLArea.I18N.msg["ActiveX-required"]; } else { alert(HTMLArea.I18N.msg["ActiveX-required"]); };', 200);
-		}
+		HTMLArea.checkInitialLoad();
 	} else {
-		if (HTMLArea.is_ie) alert(HTMLArea.I18N.msg["ActiveX-required"]);
+		if (HTMLArea.is_ie) {
+			HTMLArea._appendToLog("ERROR [HTMLArea::init]: " + HTMLArea.I18N.msg["ActiveX-required"]);
+			alert(HTMLArea.I18N.msg["ActiveX-required"]);
+		}
 	}
 };
 
@@ -3296,6 +3259,7 @@
 		return (function(editor, buttonId) {
 			self[functionName](editor, buttonId);});
 	},
+	
 	/**
 	 * Localize a string
 	 *
@@ -3308,6 +3272,17 @@
 	},
 	
 	/**
+	 * Load a Javascript file synchronously
+	 *
+	 * @param	string		url: url of the file to load
+	 *
+	 * @return	boolean		true on success
+	 */
+	getJavascriptFile : function (url) {
+		return HTMLArea._getScript(0, false, url);
+	},
+	
+	/**
 	 * Append an entry at the end of the troubleshooting log
 	 *
 	 * @param	string		functionName: the name of the plugin function writing to the log
Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/InlineCSS/inlinecss.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/plugins/InlineCSS/inlinecss.js	(revision 2673)
+++ typo3/sysext/rtehtmlarea/htmlarea/plugins/InlineCSS/inlinecss.js	(working copy)
@@ -268,11 +268,8 @@
 	generate : function(editor) {
 		var obj = editor.config.customSelects["InlineCSS-class"];
 		var classesUrl = obj["classesUrl"];
-		if (classesUrl && typeof(HTMLArea.classesLabels) == "undefined") {
-			var classesData = HTMLArea._getScript(0, false, classesUrl);
-			if (classesData) {
-				eval(classesData);
-			}
+		if (classesUrl && typeof(HTMLArea.classesLabels) === "undefined") {
+			this.getJavascriptFile(classesUrl);
 		}
 			// Let us load the style sheets
 		if (obj.loaded) {
