Index: CKEditor/trunk/_source/core/_bootstrap.js
===================================================================
--- CKEditor/trunk/_source/core/_bootstrap.js	(revision 3504)
+++ CKEditor/trunk/_source/core/_bootstrap.js	(revision 3505)
@@ -7,4 +7,25 @@
  * @fileOverview API initialization code.
  */
+
+(function()
+{
+	// Check is High Contrast is active by creating a temporary element with a
+	// background image.
+
+	var testImage = ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 ) ? ( CKEDITOR.basePath + 'images/spacer.gif' ) : 'about:blank';
+
+	var hcDetect = CKEDITOR.dom.element.createFromHtml( 
+		'<div style="width:0px;height:0px;' +
+			'position:absolute;left:-10000px;' +
+			'background-image:url(' + testImage + ')"></div>', CKEDITOR.document );
+
+	hcDetect.appendTo( CKEDITOR.document.getHead() );
+
+	// Update CKEDITOR.env.
+	if ( CKEDITOR.env.hc = ( hcDetect.getComputedStyle( 'background-image' ) == 'none' ) )
+		CKEDITOR.env.cssClass += ' cke_hc';
+
+	hcDetect.remove();
+})();
 
 // Load core plugins.
Index: CKEditor/trunk/_source/plugins/colorbutton/plugin.js
===================================================================
--- CKEditor/trunk/_source/plugins/colorbutton/plugin.js	(revision 3504)
+++ CKEditor/trunk/_source/plugins/colorbutton/plugin.js	(revision 3505)
@@ -22,5 +22,5 @@
 			editor.ui.add( name, CKEDITOR.UI_PANELBUTTON,
 				{
-					label : lang.label,
+					label : title,
 					title : title,
 					className : 'cke_button_' + name.toLowerCase(),
Index: CKEditor/trunk/_source/skins/office2003/dialog.css
===================================================================
--- CKEditor/trunk/_source/skins/office2003/dialog.css	(revision 3504)
+++ CKEditor/trunk/_source/skins/office2003/dialog.css	(revision 3505)
@@ -419,4 +419,5 @@
 	position: absolute;
 	cursor: pointer;
+	text-align: center;
 	height: 21px;
 	width: 21px;
@@ -425,4 +426,9 @@
 	/* IE6 does not support full color transparent PNG. */
 	_background-image: url(images/sprites_ie6.png);
+}
+
+.cke_skin_office2003 .cke_dialog_close_button span
+{
+	display: none;
 }
 
@@ -593,2 +599,32 @@
 	color: #a0a0a0;
 }
+
+/* High Contrast Mode */
+.cke_skin_office2003 .cke_hc .cke_dialog_title,
+.cke_skin_office2003 .cke_hc .cke_dialog_tabs,
+.cke_skin_office2003 .cke_hc .cke_dialog_contents,
+.cke_skin_office2003 .cke_hc .cke_dialog_footer
+{
+	border-left: 1px solid;
+	border-right: 1px solid;
+}
+
+.cke_skin_office2003 .cke_hc .cke_dialog_title
+{
+	border-top: 1px solid;
+}
+
+.cke_skin_office2003 .cke_hc .cke_dialog_footer
+{
+	border-bottom: 1px solid;
+}
+
+.cke_skin_office2003 .cke_hc .cke_dialog_close_button span
+{
+	display: inline;
+	cursor: pointer;
+	cursor: hand;
+	font-weight: bold;
+	position: relative;
+	top: 3px;
+}
Index: CKEditor/trunk/_source/skins/office2003/richcombo.css
===================================================================
--- CKEditor/trunk/_source/skins/office2003/richcombo.css	(revision 3504)
+++ CKEditor/trunk/_source/skins/office2003/richcombo.css	(revision 3505)
@@ -22,4 +22,10 @@
 	filter: alpha(opacity=70); /* IE */
 	opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_office2003 .cke_hc .cke_rcombo a
+{
+	filter: alpha(opacity=100); /* IE */
+	opacity: 1.0; /* Safari, Opera and Mozilla */
 }
 
@@ -37,4 +43,10 @@
 	_background-position: 0 -962px;
 	_background-repeat: repeat-x;
+}
+
+.cke_skin_office2003 .cke_hc .cke_rcombo .cke_label
+{
+	filter: alpha(opacity=100);
+	opacity: 1.0;
 }
 
@@ -172,4 +184,10 @@
 }
 
+.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_label
+{
+	filter: alpha(opacity=70);
+	opacity: 0.7;
+}
+
 .cke_skin_office2003 .cke_rcombo .cke_disabled .cke_text,
 .cke_skin_office2003 .cke_rcombo .cke_disabled .cke_openbutton
@@ -177,4 +195,11 @@
 	filter: alpha(opacity=50); /* IE */
 	opacity: 0.5; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_text,
+.cke_skin_office2003 .cke_hc .cke_rcombo .cke_disabled .cke_openbutton
+{
+	filter: alpha(opacity=80);
+	opacity: 0.8;
 }
 
Index: CKEditor/trunk/_source/skins/office2003/toolbar.css
===================================================================
--- CKEditor/trunk/_source/skins/office2003/toolbar.css	(revision 3504)
+++ CKEditor/trunk/_source/skins/office2003/toolbar.css	(revision 3505)
@@ -135,4 +135,11 @@
 }
 
+.cke_skin_office2003 .cke_hc .cke_button a,
+.cke_skin_office2003 .cke_hc .cke_button a.cke_off
+{
+	opacity: 1.0;
+	filter: alpha(opacity=100);
+}
+
 .cke_skin_office2003 .cke_button a.cke_on
 {
@@ -145,4 +152,10 @@
 }
 
+.cke_skin_office2003 .cke_hc .cke_button a.cke_on
+{
+	padding: 0 2px !important;
+	border-width: 3px;
+}
+
 .cke_skin_office2003 .cke_button a.cke_disabled,
 .cke_skin_office2003 .cke_button a:hover.cke_disabled,
@@ -157,4 +170,11 @@
 	_border: none;
 	_margin: 3px 1px 1px 1px;
+}
+
+.cke_skin_office2003 .cke_hc .cke_button a.cke_disabled,
+.cke_skin_office2003 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled
+{
+	filter: alpha(opacity=60);
+	opacity: 0.6;
 }
 
@@ -173,4 +193,16 @@
 
 	_margin: 2px 0 0 0;
+	padding: 2px 4px;
+}
+
+.cke_skin_office2003 .cke_hc .cke_button a:hover.cke_on,
+.cke_skin_office2003 .cke_hc .cke_button a:focus.cke_on,
+.cke_skin_office2003 .cke_hc .cke_button a:active.cke_on,	/* IE */
+.cke_skin_office2003 .cke_hc .cke_button a:hover.cke_off,
+.cke_skin_office2003 .cke_hc .cke_button a:focus.cke_off,
+.cke_skin_office2003 .cke_hc .cke_button a:active.cke_off	/* IE */
+{
+	padding: 0 2px !important;
+	border-width: 3px;
 }
 
@@ -207,4 +239,20 @@
 	_background-color: #c1d2ee;
 	_background-image: none;
+}
+
+.cke_skin_office2003 .cke_hc .cke_button .cke_label
+{
+	display: inline-block;
+}
+
+.cke_skin_office2003 .cke_hc .cke_button .cke_icon
+{
+	display: none;
+}
+
+.cke_skin_office2003 .cke_accessibility
+{
+	position: absolute;
+	top: -1000000px;
 }
 
@@ -288,4 +336,9 @@
 }
 
+.cke_skin_office2003 .cke_browser_gecko.cke_hc .cke_button .cke_icon
+{
+	display: none;
+}
+
 .cke_skin_office2003 .cke_rtl.cke_browser_gecko .cke_toolbar,
 .cke_skin_office2003 .cke_rtl.cke_browser_gecko .cke_button a,
Index: CKEditor/trunk/_source/skins/v2/dialog.css
===================================================================
--- CKEditor/trunk/_source/skins/v2/dialog.css	(revision 3504)
+++ CKEditor/trunk/_source/skins/v2/dialog.css	(revision 3505)
@@ -413,4 +413,5 @@
 	position: absolute;
 	cursor: pointer;
+	text-align: center;
 	height: 20px;
 	width: 20px;
@@ -419,4 +420,9 @@
 	/* IE6 does not support full color transparent PNG. */
 	_background-image: url(images/sprites_ie6.png);
+}
+
+.cke_skin_v2 .cke_dialog_close_button span
+{
+	display: none;
 }
 
@@ -592,2 +598,32 @@
 	color: #a0a0a0;
 }
+
+/* High Contrast Mode */
+.cke_skin_v2 .cke_hc .cke_dialog_title,
+.cke_skin_v2 .cke_hc .cke_dialog_tabs,
+.cke_skin_v2 .cke_hc .cke_dialog_contents,
+.cke_skin_v2 .cke_hc .cke_dialog_footer
+{
+	border-left: 1px solid;
+	border-right: 1px solid;
+}
+
+.cke_skin_v2 .cke_hc .cke_dialog_title
+{
+	border-top: 1px solid;
+}
+
+.cke_skin_v2 .cke_hc .cke_dialog_footer
+{
+	border-bottom: 1px solid;
+}
+
+.cke_skin_v2 .cke_hc .cke_dialog_close_button span
+{
+	display: inline;
+	cursor: pointer;
+	cursor: hand;
+	font-weight: bold;
+	position: relative;
+	top: 3px;
+}
Index: CKEditor/trunk/_source/skins/v2/richcombo.css
===================================================================
--- CKEditor/trunk/_source/skins/v2/richcombo.css	(revision 3504)
+++ CKEditor/trunk/_source/skins/v2/richcombo.css	(revision 3505)
@@ -20,4 +20,10 @@
 	filter: alpha(opacity=70); /* IE */
 	opacity: 0.70; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_v2 .cke_hc .cke_rcombo a
+{
+	filter: alpha(opacity=100); /* IE */
+	opacity: 1.0; /* Safari, Opera and Mozilla */
 }
 
@@ -32,4 +38,10 @@
 	opacity: 0.70; /* Safari, Opera and Mozilla */
 	background-color: #f1f1e3;	/* Because of IE6+ClearType */
+}
+
+.cke_skin_v2 .cke_hc .cke_rcombo .cke_label
+{
+	filter: alpha(opacity=100);
+	opacity: 1.0;
 }
 
@@ -167,4 +179,10 @@
 }
 
+.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_label
+{
+	filter: alpha(opacity=70);
+	opacity: 0.7;
+}
+
 .cke_skin_v2 .cke_rcombo .cke_disabled .cke_text,
 .cke_skin_v2 .cke_rcombo .cke_disabled .cke_openbutton
@@ -172,4 +190,11 @@
 	filter: alpha(opacity=50); /* IE */
 	opacity: 0.5; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_text,
+.cke_skin_v2 .cke_hc .cke_rcombo .cke_disabled .cke_openbutton
+{
+	filter: alpha(opacity=80);
+	opacity: 0.8;
 }
 
Index: CKEditor/trunk/_source/skins/v2/toolbar.css
===================================================================
--- CKEditor/trunk/_source/skins/v2/toolbar.css	(revision 3504)
+++ CKEditor/trunk/_source/skins/v2/toolbar.css	(revision 3505)
@@ -111,4 +111,11 @@
 }
 
+.cke_skin_v2 .cke_hc .cke_button a,
+.cke_skin_v2 .cke_hc .cke_button a.cke_off
+{
+	opacity: 1.0;
+	filter: alpha(opacity=100);
+}
+
 .cke_skin_v2 .cke_button a.cke_on
 {
@@ -117,4 +124,11 @@
 	filter: alpha(opacity=100); /* IE */
 	opacity: 1; /* Safari, Opera and Mozilla */
+	padding: 2px 4px;
+}
+
+.cke_skin_v2 .cke_hc .cke_button a.cke_on
+{
+	padding: 0 2px !important;
+	border-width: 3px;
 }
 
@@ -126,4 +140,11 @@
 	filter: alpha(opacity=30); /* IE */
 	opacity : 0.3; /* Safari, Opera and Mozilla */
+}
+
+.cke_skin_v2 .cke_hc .cke_button a.cke_disabled,
+.cke_skin_v2 .cke_browser_ie.cke_hc a:hover.cke_button .cke_disabled
+{
+	filter: alpha(opacity=60);
+	opacity: 0.6;
 }
 
@@ -139,4 +160,16 @@
 	filter: alpha(opacity=100); /* IE */
 	opacity: 1; /* Safari, Opera and Mozilla */
+	padding: 2px 4px;
+}
+
+.cke_skin_v2 .cke_hc .cke_button a:hover.cke_on,
+.cke_skin_v2 .cke_hc .cke_button a:focus.cke_on,
+.cke_skin_v2 .cke_hc .cke_button a:active.cke_on,	/* IE */
+.cke_skin_v2 .cke_hc .cke_button a:hover.cke_off,
+.cke_skin_v2 .cke_hc .cke_button a:focus.cke_off,
+.cke_skin_v2 .cke_hc .cke_button a:active.cke_off	/* IE */
+{
+	padding: 0 2px !important;
+	border-width: 3px;
 }
 
@@ -157,4 +190,14 @@
 	padding-left: 3px;
 	vertical-align: 3px;
+}
+
+.cke_skin_v2 .cke_hc .cke_button .cke_label
+{
+	display: inline-block;
+}
+
+.cke_skin_v2 .cke_hc .cke_button .cke_icon
+{
+	display: none;
 }
 
@@ -243,4 +286,9 @@
 }
 
+.cke_skin_v2 .cke_browser_gecko.cke_hc .cke_button .cke_icon
+{
+	display: none;
+}
+
 .cke_skin_v2 .cke_rtl.cke_browser_gecko .cke_toolbar,
 .cke_skin_v2 .cke_rtl.cke_browser_gecko .cke_button a,
Index: CKEditor/trunk/_source/themes/default/theme.js
===================================================================
--- CKEditor/trunk/_source/themes/default/theme.js	(revision 3504)
+++ CKEditor/trunk/_source/themes/default/theme.js	(revision 3505)
@@ -100,5 +100,7 @@
 							'<div class="%body">' +
 								'<div id="%title#" class="%title"></div>' +
-								'<div id="%close_button#" class="%close_button"></div>' +
+								'<div id="%close_button#" class="%close_button">' +
+									'<span>X</span>' +
+								'</div>' +
 								'<div id="%tabs#" class="%tabs"></div>' +
 								'<div id="%contents#" class="%contents"></div>' +
@@ -125,6 +127,7 @@
 			var body = element.getChild( [ 0, 0 ] );
 
-			// Make the Title unselectable.
+			// Make the Title and Close Button unselectable.
 			body.getChild( 0 ).unselectable();
+			body.getChild( 1 ).unselectable();
 
 
