Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js	(révision 4137)
+++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js	(copie de travail)
@@ -444,9 +444,11 @@
 				if (newval) {
 					HTMLArea._addClass(el, "buttonPressed");
 					HTMLArea._addClass(el.parentNode, "buttonPressed");
+					el.active = true;
 				} else {
 					HTMLArea._removeClass(el, "buttonPressed");
 					HTMLArea._removeClass(el.parentNode, "buttonPressed");
+					el.active = false;
 				}
 				break;
 		}
Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/ContextMenu/context-menu.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/plugins/ContextMenu/context-menu.js	(révision 4137)
+++ typo3/sysext/rtehtmlarea/htmlarea/plugins/ContextMenu/context-menu.js	(copie de travail)
@@ -116,7 +116,7 @@
 				list.appendChild(item);
 				var label = option[0];
 				if (separator) {
-					item.className += " separator";
+					HTMLArea._addClass(item, "separator");
 					separator = false;
 				}
 				item.__msh = {
@@ -132,25 +132,25 @@
 				if (label != option[0]) this.keys.push([ RegExp.$1, item ]);
 				label = label.replace(/__/, "_");
 				var button = doc.createElement("button");
-				button.className = "button";
-				if(item.__msh.cmd) {
-					button.className += " " + item.__msh.cmd;
-					if(typeof(editor.plugins["TYPO3Browsers"]) != "undefined" && (item.__msh.cmd == "CreateLink" || item.__msh.cmd == "UnLink" || item.__msh.cmd == "InsertImage")) button.className += "-TYPO3Browsers";
-					button.innerHTML = label;
-				} else if(item.__msh.icon) {
-					button.innerHTML = "<img src='" + item.__msh.icon + "' />" + label;
-				} else {
-					button.innerHTML = label;
+				HTMLArea._addClass(button,  "button");
+				if (item.__msh.cmd) {
+					HTMLArea._addClass(button,  item.__msh.cmd);
+					if (editor._toolbarObjects[item.__msh.cmd]  && editor._toolbarObjects[item.__msh.cmd].active) {
+						HTMLArea._addClass(button,  "buttonActive");
+					}
+				} else if (item.__msh.icon) {
+					button.innerHTML = "<img src='" + item.__msh.icon + "' />";
 				}
 				item.appendChild(button);
-	
+				item.innerHTML = item.innerHTML + label;
+					// Setting event handlers on the menu items
 				item.__msh.mouseover = ContextMenu.mouseOverHandler(editor, item);
 				HTMLArea._addEvent(item, "mouseover", item.__msh.mouseover);
 				item.__msh.mouseout = ContextMenu.mouseOutHandler(item);
 				HTMLArea._addEvent(item, "mouseout", item.__msh.mouseout);
 				item.__msh.contextmenu = ContextMenu.itemContextMenuHandler(item);
 				HTMLArea._addEvent(item, "contextmenu", item.__msh.contextmenu);
-				if(!HTMLArea.is_ie) {
+				if (!HTMLArea.is_ie) {
 					item.__msh.mousedown = ContextMenu.mouseDownHandler(item);
 					HTMLArea._addEvent(item, "mousedown", item.__msh.mousedown);
 				}
Index: typo3/sysext/rtehtmlarea/htmlarea/skins/default/htmlarea.css
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/skins/default/htmlarea.css	(révision 4137)
+++ typo3/sysext/rtehtmlarea/htmlarea/skins/default/htmlarea.css	(copie de travail)
@@ -145,11 +145,13 @@
 	border:1px solid;border-color:#e4e0db #999999 #999999 #e4e0db;
 }
 .htmlarea .toolbar button.buttonActive {
-	border:1px solid;border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;padding:2px 0px 0px 2px;
+	border:1px solid;border-color:ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
+	padding:2px 0px 0px 2px;
 }
-.htmlarea .toolbar button.buttonPressed {
+.htmlarea .toolbar button.buttonPressed, .htmlarea-context-menu button.buttonActive {
 	background-color:ButtonHighlight;
-	border:1px solid;border-color:#999999 #e4e0db #e4e0db #999999;	padding:2px 0px 0px 2px;
+	border:1px solid;border-color:#999999 #e4e0db #e4e0db #999999;
+	padding:2px 0px 0px 2px;
 	text-decoration:none;
 }
 .htmlarea .toolbar div.indicator {
@@ -458,13 +460,13 @@
 .htmlarea-context-menu li {
 	background-color:#cdf;
 	border:1px solid #cdf;margin:1px 0;padding:0;
+	font-size:11px;
 }
-.htmlarea-context-menu li .button {
+.htmlarea-context-menu li button {
 	text-align:left;vertical-align:middle;
-	background-color:transparent;background-repeat:no-repeat;background-position:2px 2px;
-	font-size:11px;
-	height:20px;
-	border-style:none;margin:0;padding:0 0 0 24px;
+	background-color:transparent;background-repeat:no-repeat;background-position:0px 0px;
+	height:19px;width:20px;
+	border-style:none;margin:0px 3px 0px 0;padding:0;
 }
 .htmlarea-context-menu li .button img {
 	width:18px;height:18px;
Index: typo3/sysext/t3skin/rtehtmlarea/htmlarea.css
===================================================================
--- typo3/sysext/t3skin/rtehtmlarea/htmlarea.css	(révision 4137)
+++ typo3/sysext/t3skin/rtehtmlarea/htmlarea.css	(copie de travail)
@@ -155,10 +155,10 @@
 	border:1px solid;border-color:white #C5C5D5 #C5C5D5 white;
 	background-color: #E0E0E9;
 }
-.htmlarea .toolbar button.buttonActive, .htmlarea .toolbar button.buttonPressed {
+.htmlarea .toolbar button.buttonActive, .htmlarea .toolbar button.buttonPressed, .htmlarea-context-menu button.buttonActive {
 	border:1px solid;border-color:#C5C5D5 white white #C5C5D5;
 }
-.htmlarea .toolbar button.buttonPressed {
+.htmlarea .toolbar button.buttonPressed, .htmlarea-context-menu button.buttonActive {
 	background-color:ButtonHighlight;
 	text-decoration:none;
 }
@@ -176,7 +176,7 @@
 .htmlarea .toolbar div.separator {
 	background-color:transparent;background-image:url(separator.gif);background-repeat:no-repeat;
 	width:7px;height:22px;
-	border:1px solid #EFEFF4;;margin:0;padding:0;
+	border:1px solid #EFEFF4;margin:0;padding:0;
 }
 .htmlarea .toolbar div.space {
 	float:left;
@@ -197,7 +197,7 @@
 }
 .htmlarea .toolbar select.buttonDisabled {
 	color:GrayText;
-	background-color:#EFEFF4;;
+	background-color:#EFEFF4;
 }
 .htmlarea .editorIframe {
 	clear:both;
@@ -319,7 +319,7 @@
 	padding: 0.2em;
 }
 .popupwin form {
-	background-color:#EFEFF4;;
+	background-color:#EFEFF4;
 	border-style:none;margin:0;padding:0;
 }
 .popupwin form p {
@@ -460,23 +460,23 @@
 /* Selectors for the ContextMenu plugin */
 .htmlarea-context-menu {
 	position:absolute;top:-1000px;left:-1000px;z-index:1000;
-	background-color:#EFEFF4;;cursor:default;
-	color: #212424;
+	background-color:#EFEFF4;cursor:default;
+	color:#212424;
 	font-family: Verdana, Helvetica, Geneva, Arial, sans-serif;
-	font-size: 10px;
+	font-size:10px;
 	list-style:none;
 	border:1px solid #A2AAB8;margin:0;padding:2px;
 }
 .htmlarea-context-menu li {
-	background-color:#EFEFF4;;
-	border:1px solid #EFEFF4;;margin:0;padding:0;
+	background-color:#EFEFF4;
+	border:1px solid #EFEFF4;margin:0;padding:0;
+	font-size:10px;
 }
-.htmlarea-context-menu li .button {
+.htmlarea-context-menu li button {
 	text-align:left;vertical-align:middle;
-	background-color:transparent;background-repeat:no-repeat;background-position:2px 2px;
-	font-size:10px;
-	height:20px;
-	border-style:none;margin:0;padding:0 0 0 24px;
+	background-color:transparent;background-repeat:no-repeat;background-position:0px 0px;
+	height:20px;width:21px;
+	border-style:none;margin:0 3px 0 0;padding:0;
 }
 .htmlarea-context-menu li .button img {
 	width:18px;height:18px;
