diff --git a/Classes/Loader.php b/Classes/Loader.php
index 3cc77cff3f9c9dd467389a4341dc56472e213863..ca2379878981a849a3a38e106d5e2e4dd59d1518 100644
--- a/Classes/Loader.php
+++ b/Classes/Loader.php
@@ -113,20 +113,30 @@ class Loader {
 	/**
 	 * Returns a file that contains the tinyMCE configuration
 	 *
+	 * Note: The load dom event cannot be used, because e.g. IRRE adds the javascript
+	 * later on. This leads to code that is never executed. The interval timer hack fixes this
+	 * issue.
+	 *
 	 * @return string
 	 */
 	protected function getConfiguration() {
 		$configuration = $this->tinymceConfiguration['preJS'];
 		$configuration .= '
-			document.addEventListener(
-				"DOMContentLoaded", function() {
-					if (window.tinymce && window.tinymce.init) {
-						(new SG.TinyMceLoader(window.tinymce, {
-							' . $this->replaceTypo3Paths($this->tinymceConfiguration['configurationData']) . '
-						}));
-					}
-				}, false
-			);
+			var SG = SG || {};
+			SG.initTinyMceLoadFunction = function() {
+				if (SG.initializedTinyMceLoaderInstance) {
+					return;
+				}
+
+				if (SG.TinyMceLoader && window.tinymce && window.tinymce.init) {
+					SG.initializedTinyMceLoaderInstance = new SG.TinyMceLoader(window.tinymce, {
+						' . $this->replaceTypo3Paths($this->tinymceConfiguration['configurationData']) . '
+					});
+					clearInterval(SG.initTinyMceLoadInterval);
+				}
+			};
+			SG.initTinyMceLoadFunction();
+			SG.initTinyMceLoadInterval = window.setInterval(SG.initTinyMceLoadFunction, 1000);
 		';
 		$configuration .= $this->tinymceConfiguration['postJS'];