Index: /CKEditor/branches/versions/3.6.x/_source/core/ui.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/core/ui.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/core/ui.js	(revision 6810)
@@ -72,4 +72,7 @@
 		var result = handler && handler.create.apply( this, item.args );
 
+		// Allow overrides from skin ui definitions..
+		item && ( result = CKEDITOR.tools.extend( result, this._.editor.skin[ item.type ], true ) );
+
 		// Add reference inside command object.
 		if ( command )
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/button/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/button/plugin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/button/plugin.js	(revision 6810)
@@ -17,5 +17,5 @@
  * @example
  */
-CKEDITOR.UI_BUTTON = 1;
+CKEDITOR.UI_BUTTON = 'button';
 
 /**
@@ -60,6 +60,4 @@
 CKEDITOR.ui.button.prototype =
 {
-	canGroup : true,
-
 	/**
 	 * Renders the button.
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/menubutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/menubutton/plugin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/menubutton/plugin.js	(revision 6810)
@@ -18,5 +18,5 @@
  * @example
  */
-CKEDITOR.UI_MENUBUTTON = 5;
+CKEDITOR.UI_MENUBUTTON = 'menubutton';
 
 (function()
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/panel/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/panel/plugin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/panel/plugin.js	(revision 6810)
@@ -17,5 +17,5 @@
  * @example
  */
-CKEDITOR.UI_PANEL = 2;
+CKEDITOR.UI_PANEL = 'panel';
 
 CKEDITOR.ui.panel = function( document, definition )
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/panelbutton/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/panelbutton/plugin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/panelbutton/plugin.js	(revision 6810)
@@ -18,5 +18,5 @@
  * @example
  */
-CKEDITOR.UI_PANELBUTTON = 4;
+CKEDITOR.UI_PANELBUTTON = 'panelbutton';
 
 (function()
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/richcombo/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/richcombo/plugin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/richcombo/plugin.js	(revision 6810)
@@ -19,5 +19,5 @@
  * @example
  */
-CKEDITOR.UI_RICHCOMBO = 3;
+CKEDITOR.UI_RICHCOMBO = 'richcombo';
 
 CKEDITOR.ui.richCombo = CKEDITOR.tools.createClass(
Index: /CKEditor/branches/versions/3.6.x/_source/plugins/toolbar/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/plugins/toolbar/plugin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/plugins/toolbar/plugin.js	(revision 6810)
@@ -193,4 +193,5 @@
 							var toolbarId,
 								toolbarObj = 0,
+								toolbarName,
 								row = toolbar[ r ],
 								items;
@@ -222,13 +223,13 @@
 							{
 								var item,
-									itemName = items[ i ];
-
-								if ( itemName == '-' )
-									item = CKEDITOR.ui.separator;
-								else
-									item = editor.ui.create( itemName );
+									itemName = items[ i ],
+									canGroup;
+
+								item = editor.ui.create( itemName );
 
 								if ( item )
 								{
+									canGroup = item.canGroup !== false;
+
 									// Initialize the toolbar first, if needed.
 									if ( !toolbarObj )
@@ -240,9 +241,8 @@
 
 										// Output the toolbar opener.
-										output.push( '<span id="', toolbarId, '" class="cke_toolbar ',
-											( item.canGroup ? 'cke_toolbar_grouped' : 'cke_toolbar_ungrouped' ), '"',
+										output.push( '<span id="', toolbarId, '" class="cke_toolbar"',
 											( toolbarName ? ' aria-labelledby="'+ toolbarId +  '_label"' : '' ),
 											' role="toolbar">' );
-										
+
 										// If a toolbar name is available, send the voice label.
 										toolbarName && output.push( '<span id="', toolbarId, '_label" class="cke_voice_label">', toolbarName, '</span>' );
@@ -262,5 +262,5 @@
 									}
 
-									if ( item.canGroup )
+									if ( canGroup )
 									{
 										if ( !groupStarted )
@@ -399,21 +399,24 @@
 
 			editor.addCommand( 'toolbarFocus', commands.toolbarFocus );
+
+			editor.ui.add( '-', CKEDITOR.UI_SEPARATOR, {} );
+			editor.ui.addHandler( CKEDITOR.UI_SEPARATOR,
+			{
+				create: function()
+				{
+					return {
+						render : function( editor, output )
+						{
+							output.push( '<span class="cke_separator" role="separator"></span>' );
+							return {};
+						}
+					}
+				}
+			});
 		}
 	});
 })();
 
-/**
- * The UI element that renders a toolbar separator.
- * @type Object
- * @example
- */
-CKEDITOR.ui.separator =
-{
-	render : function( editor, output )
-	{
-		output.push( '<span class="cke_separator" role="separator"></span>' );
-		return {};
-	}
-};
+CKEDITOR.UI_SEPARATOR = 'separator';
 
 /**
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/skin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/skin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/skin.js	(revision 6810)
@@ -11,4 +11,5 @@
 		editor		: { css : [ 'editor.css' ] },
 		dialog		: { css : [ 'dialog.css' ] },
+		richcombo	: { canGroup: false },
 		templates	: { css : [ 'templates.css' ] },
 		margins		: [ 0, 0, 0, 0 ],
Index: /CKEditor/branches/versions/3.6.x/_source/skins/kama/toolbar.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/kama/toolbar.css	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/kama/toolbar.css	(revision 6810)
@@ -107,5 +107,5 @@
 }
 
-.cke_skin_kama .cke_toolbar.cke_toolbar_grouped
+.cke_skin_kama .cke_toolgroup
 {
 	-moz-border-radius:5px;
@@ -123,5 +123,5 @@
 }
 
-.cke_skin_kama .cke_rtl .cke_toolbar.cke_toolbar_grouped
+.cke_skin_kama .cke_rtl .cke_toolgroup
 {
 	float: right;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/richcombo.css	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/richcombo.css	(revision 6810)
@@ -8,21 +8,9 @@
 	margin-top: 2px;
 	vertical-align: top;
-	float: left;
 }
 
 .cke_skin_office2003 .cke_browser_ie .cke_rcombo
 {
-	#float: none;
 	#display: inline;
-}
-
-.cke_skin_office2003 .cke_rtl .cke_rcombo
-{
-	float: right;
-}
-
-.cke_skin_office2003 .cke_browser_ie .cke_rcombo
-{
-	#float: none;
 }
 
@@ -157,4 +145,9 @@
 }
 
+.cke_skin_office2003 .cke_browser_iequirks .cke_rcombo .cke_openbutton .cke_icon
+{
+	height: 20px;
+}
+
 /* IE with zoom != 100% will distort the icons otherwise #4821 */
 .cke_skin_office2003 .cke_browser_ie .cke_rcombo .cke_openbutton .cke_icon
Index: /CKEditor/branches/versions/3.6.x/_source/skins/office2003/skin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/office2003/skin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/office2003/skin.js	(revision 6810)
@@ -9,4 +9,5 @@
 		editor		: { css : [ 'editor.css' ] },
 		dialog		: { css : [ 'dialog.css' ] },
+		separator		: { canGroup: false },
 		templates	: { css : [ 'templates.css' ] },
 		margins		: [ 0, 14, 18, 14 ]
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/richcombo.css
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/richcombo.css	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/richcombo.css	(revision 6810)
@@ -8,21 +8,9 @@
 	margin-top: 2px;
 	vertical-align: top;
-	float: left;
 }
 
 .cke_skin_v2 .cke_browser_ie .cke_rcombo
 {
-	#float: none;
 	#display: inline;
-}
-
-.cke_skin_v2 .cke_rtl .cke_rcombo
-{
-	float: right;
-}
-
-.cke_skin_v2 .cke_browser_ie .cke_rcombo
-{
-	#float: none;
 }
 
@@ -59,10 +47,8 @@
 .cke_skin_v2 .cke_rcombo .cke_label
 {
-	display: inline-block;
 	float: left;
-
-	line-height: 24px;
+	line-height: 20px;
+	line-height: 22px\9;
 	height: 22px;
-	vertical-align: top;
 	padding-left: 4px;
 	padding-right: 5px;
Index: /CKEditor/branches/versions/3.6.x/_source/skins/v2/skin.js
===================================================================
--- /CKEditor/branches/versions/3.6.x/_source/skins/v2/skin.js	(revision 6809)
+++ /CKEditor/branches/versions/3.6.x/_source/skins/v2/skin.js	(revision 6810)
@@ -9,4 +9,5 @@
 		editor		: { css : [ 'editor.css' ] },
 		dialog		: { css : [ 'dialog.css' ] },
+		separator		: { canGroup: false },
 		templates	: { css : [ 'templates.css' ] },
 		margins		: [ 0, 14, 18, 14 ]
