Index: /CKEditor/trunk/_source/plugins/dialog/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 7054)
+++ /CKEditor/trunk/_source/plugins/dialog/plugin.js	(revision 7055)
@@ -103,4 +103,14 @@
 				: input.setAttribute( 'aria-invalid', true );
 		}
+
+		if ( !isValid )
+		{
+			if ( this.select )
+				this.select();
+			else
+				this.focus();
+		}
+
+		msg && alert( msg );
 
 		this.fire( 'validated', { valid : isValid, msg : msg } );
@@ -295,19 +305,14 @@
 						{
 							var retval = item.validate( this ),
-								isValid = retval === true ;
-
-							if ( !isValid )
+								invalid = typeof ( retval ) == 'string' || retval === false;
+
+							if ( invalid )
 							{
-								if ( item.select )
-									item.select();
-								else
-									item.focus();
-
 								evt.data.hide = false;
 								evt.stop();
 							}
-
-							handleFieldValidated.call( item, isValid, typeof retval == 'string' ? retval : undefined );
-							return  !isValid;
+							
+							handleFieldValidated.call( item, !invalid, typeof retval == 'string' ? retval : undefined );
+							return invalid;
 						}
 					});
@@ -2985,20 +2990,5 @@
 					}
 
-					if ( !passed )
-					{
-						if ( msg !== undefined )
-							alert( msg );
-						if ( this.select || this.focus  )
-						{
-							if ( this.select )
-								this.select();
-							else
-								this.focus();
-						}
-
-						return false;
-					}
-
-					return true;
+					return !passed ? msg : true;
 				};
 			},
@@ -3013,18 +3003,5 @@
 				{
 					var value = this && this.getValue ? this.getValue() : arguments[0];
-					if ( !regex.test( value ) )
-					{
-						if ( msg !== undefined )
-							alert( msg );
-						if ( this && ( this.select || this.focus ) )
-						{
-							if ( this.select )
-								this.select();
-							else
-								this.focus();
-						}
-						return false;
-					}
-					return true;
+					return !regex.test( value ) ? msg : true;
 				};
 			},
