diff --git a/javascript/src/Helper/tinyMCE.js b/javascript/src/Helper/tinyMCE.js
index 738ed2c3afa512263d4eaabce731f338cd2e1c72..5a782cb1adc08a52de8aebf38e642a94e8e4563a 100644
--- a/javascript/src/Helper/tinyMCE.js
+++ b/javascript/src/Helper/tinyMCE.js
@@ -72,10 +72,8 @@ QfqNS.Helper = QfqNS.Helper || {};
                     var me = editor;
                     var $parent = $(config.selector);
                     
-                    $parent.parent('div').mouseenter(function(e) {
-                        console.log("Mouse Enter");
-                        console.log($parent.is('[disabled]'));
-                        if($parent.is('[disabled]')) {
+                    $parent.on("change", function(e, configuration) {
+                        if(configuration.disabled || configuration.readonly) {
                             me.setMode("readonly");
                         } else {
                             me.setMode("design");
diff --git a/javascript/src/QfqForm.js b/javascript/src/QfqForm.js
index cda7095897de0293bdf5a0e40767afb57f0ed4e5..3af04c5bb4f7a0fa699f5749b75ea09db4fd52ec 100644
--- a/javascript/src/QfqForm.js
+++ b/javascript/src/QfqForm.js
@@ -1230,6 +1230,14 @@ var QfqNS = QfqNS || {};
             try {
                 var element = n.Element.getElement(formElementName);
 
+                // Cleaner way to set states for tinymce
+                // This triggers the event on the unaccesable textarea
+                // The tinymce registers a listener on the textarea
+                // See helper/tinyMCE.js for details
+                if(element.$element.hasClass('qfq-tinymce')) {
+                    element.$element.trigger("change", [configurationItem]);
+                }
+
                 if (configurationItem.value !== undefined) {
                     element.setValue(configurationItem.value);
                 }