Index: /CKEditor/branches/prototype/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/dialogui/plugin.js	(revision 2652)
+++ /CKEditor/branches/prototype/_source/plugins/dialogui/plugin.js	(revision 2653)
@@ -182,5 +182,5 @@
 
 				if ( elementDefinition.validate )
-					this.validate = elementDefinition.validate();
+					this.validate = elementDefinition.validate;
 
 				/** @ignore */
@@ -346,4 +346,47 @@
 
 			/**
+			 * A select box.
+			 * @extends CKEDITOR.ui.dialog.uiElement
+			 * @example
+			 * @constructor
+			 */	
+			select : function( dialog, elementDefinition, htmlList )
+			{
+				if ( arguments.length < 3 )
+					return;
+
+				var _ = initPrivateObject.call( this, elementDefinition );
+
+				if ( elementDefinition.validate )
+					this.validate = elementDefinition.validate;
+
+				/** @ignore */
+				var innerHTML = function()
+				{
+					var myDefinition = CKEDITOR.tools.extend( {}, elementDefinition,
+							{
+								id : elementDefinition.id ? elementDefinition.id + '_select' : CKEDITOR.tools.getNextNumber() + '_select',
+								title : null,
+								type : null
+							}, true ),
+						html = [],
+						innerHTML = [],
+						attributes = { 'class' : 'cke_dialog_ui_select_input' };
+
+					for ( var i = 0, item ; i < elementDefinition.items.length && ( item = elementDefinition.items[i] ) ; i++ )
+					{
+						innerHTML.push( '<option value="',
+							CKEDITOR.tools.htmlEncode( item[1] || item[0] ), '" /> ',
+							CKEDITOR.tools.htmlEncode( item[0] ) );
+					};
+
+					_.select = new CKEDITOR.ui.dialog.uiElement( dialog, myDefinition, html, 'select', null, attributes, innerHTML.join( '' ) );
+					return html.join( '' );
+				};
+
+				CKEDITOR.ui.dialog.labeledElement.call( this, dialog, elementDefinition, htmlList, innerHTML );
+			},
+
+			/**
 			 * A dialog element made from raw HTML code.
 			 * @extends CKEDITOR.ui.dialog.uiElement
@@ -469,4 +512,13 @@
 			}, commonPrototype, true );
 
+	CKEDITOR.ui.dialog.select.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.labeledElement,
+			/** @lends CKEDITOR.ui.dialog.select.prototype */
+			{
+				getElement : function()
+				{
+					return this._.select.getElement();
+				}
+			} );
+
 	CKEDITOR.ui.dialog.checkbox.prototype = CKEDITOR.tools.extend( new CKEDITOR.ui.dialog.uiElement,
 			/** @lends CKEDITOR.ui.dialog.checkbox.prototype */
@@ -547,19 +599,5 @@
 						if ( children[i].getElement().$.checked )
 						{
-							this.setValue( children[ ( i + 1 ) % children.length ].getValue() );
-							return;
-						}
-					}
-					this.setValue( children[0].getValue() );
-				},
-
-				accessKeyDown : function()
-				{
-					var children = this._.children, i;
-					for ( i = 0 ; i < children.length ; i++ )
-					{
-						if ( children[i].getElement().$.checked )
-						{
-							children[ ( i + 1 ) % children.length ].getElement().focus();
+							children[i].getElement().focus();
 							return;
 						}
@@ -576,4 +614,5 @@
 	CKEDITOR.dialog.addUIElement( 'radio', commonBuilder );
 	CKEDITOR.dialog.addUIElement( 'button', commonBuilder );
+	CKEDITOR.dialog.addUIElement( 'select', commonBuilder );
 	CKEDITOR.dialog.addUIElement( 'html', commonBuilder );
 })();
Index: /CKEditor/branches/prototype/_source/skins/default/dialog.css
===================================================================
--- /CKEditor/branches/prototype/_source/skins/default/dialog.css	(revision 2652)
+++ /CKEditor/branches/prototype/_source/skins/default/dialog.css	(revision 2653)
@@ -479,4 +479,10 @@
 }
 
+.cke_skin_default .cke_dialog_ui_select_input
+{
+	border: 1px solid #a0a0a0;
+	background-color: white;
+}
+
 /*
  * Safari and Gecko on Mac actually distinguish between single-sided and
Index: /CKEditor/branches/prototype/_source/skins/default/toolbar.css
===================================================================
--- /CKEditor/branches/prototype/_source/skins/default/toolbar.css	(revision 2652)
+++ /CKEditor/branches/prototype/_source/skins/default/toolbar.css	(revision 2653)
@@ -181,2 +181,7 @@
 	background-position: 0 -640px;
 }
+
+.cke_skin_default a.cke_button_link .cke_icon
+{
+	background-position: 0 -528px;
+}
