Index: /CKEditor/branches/prototype/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/dialog/plugin.js	(revision 2715)
+++ /CKEditor/branches/prototype/_source/plugins/dialog/plugin.js	(revision 2716)
@@ -1610,4 +1610,6 @@
 			
 			// Add events.
+			CKEDITOR.event.implementOn( this );
+
 			this.registerEvents( elementDefinition );
 			if ( this.accessKeyUp && this.accessKeyDown && elementDefinition.accessKey )
@@ -1770,4 +1772,5 @@
 	{
 		this.getInputElement().$.value = value;
+		this.fire( 'change', { value : value } );
 	},
 
Index: /CKEditor/branches/prototype/_source/plugins/dialogui/plugin.js
===================================================================
--- /CKEditor/branches/prototype/_source/plugins/dialogui/plugin.js	(revision 2715)
+++ /CKEditor/branches/prototype/_source/plugins/dialogui/plugin.js	(revision 2716)
@@ -64,4 +64,20 @@
 		}
 	},
+	commonEventProcessors = CKEDITOR.tools.extend( {}, CKEDITOR.ui.dialog.uiElement.prototype.eventProcessors,
+		{
+			onChange : function( dialog, func )
+			{
+				if ( !this._.domOnChangeRegistered )
+				{
+					dialog.on( 'load', function()
+						{
+							this.getInputElement().on( 'change', function(){ this.fire( 'change', { value : this.getValue() } ); }, this );
+						}, this );
+					this._.domOnChangeRegistered = true;
+				}
+
+				this.on( 'change', func );
+			}
+		}, true ),
 	eventRegex = /^on([A-Z]\w+)/,
 	cleanInnerDefinition = function( def )
@@ -590,5 +606,7 @@
 					else
 						return node.getChild( 0 ).getText();
-				}
+				},
+
+				eventProcessors : commonEventProcessors
 			}, true );
 
@@ -708,4 +726,5 @@
 				{
 					this.getInputElement().$.checked = checked;
+					this.fire( 'change', { value : checked } );
 				},
 
@@ -723,5 +742,7 @@
 				{
 					this.setValue( !this.getValue() );
-				}
+				},
+
+				eventProcessors : commonEventProcessors
 			}, commonPrototype, true );
 
@@ -740,4 +761,5 @@
 					for ( var i = 0 ; ( i < children.length ) && ( item = children[i] ) ; i++ )
 						item.getElement().$.checked = ( item.getValue() == value );
+					this.fire( 'change', { value : value } );
 				},
 
@@ -770,5 +792,7 @@
 					}
 					children[0].getElement().focus();
-				}
+				},
+
+				eventProcessors : commonEventProcessors
 			}, commonPrototype, true );
 
