Index: _source/skins/kama/skin.js
===================================================================
--- _source/skins/kama/skin.js	(revision 4452)
+++ _source/skins/kama/skin.js	Wed Nov 11 18:02:58 CST 2009
@@ -5,7 +5,8 @@
 
 CKEDITOR.skins.add( 'kama', (function()
 {
-	var preload = [];
+	var preload = [],
+		uiColorStylesheetId = 'cke_ui_color';
 
 	if ( CKEDITOR.env.ie && CKEDITOR.env.version < 7 )
 	{
@@ -89,12 +90,15 @@
 					uiColorMenuCss[ i ] = uiColorMenuCss[ i ].split( '{' );
 			}
 
-			function addStylesheet( document )
+			function getStylesheet( document )
 			{
-				var node = document.getHead().append( 'style' );
-				node.setAttribute( "id", "cke_ui_color" );
+				var node = document.getById( uiColorStylesheetId );
+				if( !node )
+				{
+					node = document.getHead().append( 'style' );
+					node.setAttribute( "id", uiColorStylesheetId );
-				node.setAttribute( "type", "text/css" );
+					node.setAttribute( "type", "text/css" );
-
+				}
 				return node;
 			}
 
@@ -105,10 +109,6 @@
 				{
 					if ( CKEDITOR.env.webkit )
 					{
-						// Truncate manually.
-						for ( i = 0 ; i < styleNodes[ id ].$.sheet.rules.length ; i++ )
-							styleNodes[ id ].$.sheet.removeRule( i );
-
 						for ( i = 0 ; i < styleContent.length ; i++ )
 						{
 							content = styleContent[ i ][ 1 ];
@@ -125,9 +125,9 @@
 							content = content.replace( replace[ r ][ 0 ], replace[ r ][ 1 ] );
 
 						if ( CKEDITOR.env.ie )
-							styleNodes[ id ].$.styleSheet.cssText = content;
+							styleNodes[ id ].$.styleSheet.cssText += content;
 						else
-							styleNodes[ id ].setHtml( content );
+							styleNodes[ id ].$.innerHTML += content;
 					}
 				}
 			}
@@ -146,7 +146,7 @@
 				setUiColor : function( color )
 				{
 					var cssContent,
-						uiStyle = addStylesheet( CKEDITOR.document ),
+						uiStyle = getStylesheet( CKEDITOR.document ),
 						cssId = '#cke_' + CKEDITOR.tools.escapeCssSelector( editor.name );
 
 					var cssSelectors =
@@ -186,7 +186,7 @@
 				// Add stylesheet if missing.
 				if ( !iframe.getById( 'cke_ui_color' ) )
 				{
-					var node = addStylesheet( iframe );
+					var node = getStylesheet( iframe );
 					uiColorMenus.push( node );
 
 					var color = editor.getUiColor();
