Index: /CKEditor/tests/dt/core/tools.html
===================================================================
--- /CKEditor/tests/dt/core/tools.html	(revision 4451)
+++ /CKEditor/tests/dt/core/tools.html	(revision 4452)
@@ -157,4 +157,8 @@
 		},
 
+		test_escapeCssSelector : function ()
+		{
+			assert.areSame( '\\.\\,\\*\\=\\~\\$\\^\\(\\)\\ \\:\\#\\+\\>', CKEDITOR.tools.escapeCssSelector( '.,*=~$^() :#+>' ) );
+		},
 		name : document.title
 	};
Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 4451)
+++ /CKEditor/trunk/CHANGES.html	(revision 4452)
@@ -53,4 +53,5 @@
 		<li><a href="http://dev.fckeditor.net/ticket/4573">#4573</a> : Fixed 'IgnoreEmptyPargraph' config doesn't work with config 'entites' set to 'false'.</li>
 		<li><a href="http://dev.fckeditor.net/ticket/4614">#4614</a> : Fixed attribute protection fails because of line-break.</li>
+		<li><a href="http://dev.fckeditor.net/ticket/4546">#4546</a> : Fixed UIColor plugin doesn't work when editor id contains CSS selector preserved keywords.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/core/tools.js
===================================================================
--- /CKEditor/trunk/_source/core/tools.js	(revision 4451)
+++ /CKEditor/trunk/_source/core/tools.js	(revision 4452)
@@ -277,4 +277,17 @@
 
 		/**
+		 * Replace characters can't be represented through CSS Selectors string
+		 * by CSS Escape Notation where the character escape sequence consists
+		 * of a backslash character (\) followed by the orginal characters.
+		 * Ref: http://www.w3.org/TR/css3-selectors/#grammar
+		 * @param cssSelectText
+		 * @return the escaped selector text. 
+		 */
+		escapeCssSelector : function( cssSelectText )
+		{
+			return cssSelectText.replace( /[\s#:.,$*^\[\]()~=+>]/g, '\\$&' );
+		},
+
+		/**
 		 * Gets a unique number for this CKEDITOR execution session. It returns
 		 * progressive numbers starting at 1.
Index: /CKEditor/trunk/_source/skins/kama/skin.js
===================================================================
--- /CKEditor/trunk/_source/skins/kama/skin.js	(revision 4451)
+++ /CKEditor/trunk/_source/skins/kama/skin.js	(revision 4452)
@@ -148,5 +148,5 @@
 					var cssContent,
 						uiStyle = addStylesheet( CKEDITOR.document ),
-						cssId = '#cke_' + editor.name.replace('.', '\\.');
+						cssId = '#cke_' + CKEDITOR.tools.escapeCssSelector( editor.name );
 
 					var cssSelectors =
