Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js	(révision 7838)
+++ typo3/sysext/rtehtmlarea/htmlarea/plugins/BlockElements/block-elements.js	(copie de travail)
@@ -921,7 +921,45 @@
 		}
 		var statusBarSelection = this.editor.getPluginInstance("StatusBar") ? this.editor.getPluginInstance("StatusBar").getSelection() : null;
 		var parentElement = statusBarSelection ? statusBarSelection : this.editor.getParentElement();
-		if (parentElement.nodeName.toLowerCase() === "body") return false;
+		if (parentElement.nodeName.toLowerCase() === "body") {
+				// The selection is not contained in any block
+			var dropDownConfiguration = this.getDropDownConfiguration("FormatBlock");
+			if ((typeof(dropDownConfiguration) !== "undefined") && this.isButtonInToolbar(dropDownConfiguration.id)) {
+				this.updateDropDown(dropDownConfiguration);
+			}
+			for (var buttonId in this.buttonList) {
+				if (this.buttonList.hasOwnProperty(buttonId) && this.isButtonInToolbar(buttonId)) {
+					switch (buttonId) {
+						case 'Outdent' :
+							this.editor._toolbarObjects[buttonId].state("enabled", false);
+							break;
+						case 'Indent' :
+							break;
+						case 'InsertParagraphBefore' :
+						case 'InsertParagraphAfter'  :
+							this.editor._toolbarObjects[buttonId].state("enabled", false);
+							break;
+						case 'Blockquote' :
+							this.editor._toolbarObjects[buttonId].state("active", false);
+							break;
+						case 'JustifyLeft'   :
+						case 'JustifyCenter' :
+						case 'JustifyRight'  :
+						case 'JustifyFull'   :
+							this.editor._toolbarObjects[buttonId].state("active", false);
+							this.editor._toolbarObjects[buttonId].state("enabled", false);
+							break;
+						case 'InsertOrderedList':
+						case 'InsertUnorderedList':
+							this.editor._toolbarObjects[buttonId].state("active", false);
+							break;
+						default	:
+							break;
+					}
+				}
+			}
+			return false;
+		}
 		while (parentElement && !HTMLArea.isBlockElement(parentElement) || /^li$/i.test(parentElement.nodeName)) {
 			parentElement = parentElement.parentNode;
 		}
Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/DefinitionList/definition-list.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/plugins/DefinitionList/definition-list.js	(révision 7838)
+++ typo3/sysext/rtehtmlarea/htmlarea/plugins/DefinitionList/definition-list.js	(copie de travail)
@@ -314,7 +314,19 @@
 		}
 		var statusBarSelection = this.editor.getPluginInstance("StatusBar") ? this.editor.getPluginInstance("StatusBar").getSelection() : null;
 		var parentElement = statusBarSelection ? statusBarSelection : this.editor.getParentElement();
-		if (parentElement.nodeName.toLowerCase() === "body") return false;
+		if (parentElement.nodeName.toLowerCase() === "body") {
+				// The selection is not contained in any block
+			for (var buttonId in this.buttonList) {
+				if (this.buttonList.hasOwnProperty(buttonId) && this.isButtonInToolbar(buttonId)) {
+					switch (buttonId) {
+						case 'Outdent':
+							this.base();
+							break;
+					}
+				}
+			}
+			return false;
+		}
 		while (parentElement && (!HTMLArea.isBlockElement(parentElement) || /^(li)$/i.test(parentElement.nodeName))) {
 			parentElement = parentElement.parentNode;
 		}
Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js	(révision 7838)
+++ typo3/sysext/rtehtmlarea/htmlarea/plugins/Language/language.js	(copie de travail)
@@ -408,6 +408,9 @@
 							if (parent) {
 								var direction = (buttonId === "RightToLeft") ? "rtl" : "ltr";
 								this.editor._toolbarObjects[buttonId].state("active",(parent.dir == direction || parent.style.direction == direction));
+								this.editor._toolbarObjects[buttonId].state("enabled", !/^body$/i.test(parent.nodeName));
+							} else {
+								this.editor._toolbarObjects[buttonId].state("enabled", false);
 							}
 							break;
 						case "ShowLanguageMarks":
