Index: branches/5.2.x/core/install/english.lang
===================================================================
--- branches/5.2.x/core/install/english.lang
+++ branches/5.2.x/core/install/english.lang
@@ -294,7 +294,7 @@
 			<PHRASE Label="la_error_UserBanned" Module="Core" Type="1">VXNlciBCYW5uZWQ=</PHRASE>
 			<PHRASE Label="LA_ERROR_USERNOTFOUND" Module="Core" Type="1">dXNlciBub3QgZm91bmQ=</PHRASE>
 			<PHRASE Label="la_error_YouMustSelectOnlyOneUser" Module="Core" Type="1">WW91IG11c3Qgc2VsZWN0IG9ubHkgb25lIHVzZXI=</PHRASE>
-			<PHRASE Label="la_err_bad_date_format" Module="Core" Type="1">SW5jb3JyZWN0IGRhdGUgZm9ybWF0LCBwbGVhc2UgdXNlICglcykgZXguICglcyk=</PHRASE>
+			<PHRASE Label="la_err_bad_date_format" Module="Core" Type="1">SW5jb3JyZWN0IGRhdGUgZm9ybWF0LCBwbGVhc2UgdXNlICh7Zm9ybWF0fSkgZXguICh7c2FtcGxlfSk=</PHRASE>
 			<PHRASE Label="la_err_bad_type" Module="Core" Type="1">SW5jb3JyZWN0IGRhdGEgZm9ybWF0LCBwbGVhc2UgdXNlIHt0eXBlfQ==</PHRASE>
 			<PHRASE Label="la_err_invalid_format" Module="Core" Type="1">SW52YWxpZCBGb3JtYXQ=</PHRASE>
 			<PHRASE Label="la_err_length_out_of_range" Module="Core" Type="1">RmllbGQgdmFsdWUgbGVuZ3RoIGlzIG91dCBvZiByYW5nZSwgcG9zc2libGUgdmFsdWUgbGVuZ3RoIGZyb20ge21pbl9sZW5ndGh9IHRvIHttYXhfbGVuZ3RofQ==</PHRASE>
Index: branches/5.2.x/core/install/upgrades.sql
===================================================================
--- branches/5.2.x/core/install/upgrades.sql
+++ branches/5.2.x/core/install/upgrades.sql
@@ -2942,3 +2942,7 @@
 WHERE `Name` IN ('Core', 'In-Portal');
 
 DELETE FROM CachedUrls;
+
+UPDATE LanguageLabels
+SET l1_Translation = 'Incorrect date format, please use ({format}) ex. ({sample})'
+WHERE PhraseKey = 'LA_ERR_BAD_DATE_FORMAT';
Index: branches/5.2.x/core/kernel/utility/formatters/date_formatter.php
===================================================================
--- branches/5.2.x/core/kernel/utility/formatters/date_formatter.php
+++ branches/5.2.x/core/kernel/utility/formatters/date_formatter.php
@@ -388,7 +388,11 @@
 		$format = $options['input_format'];
 		if ($dt_separator) $format = trim($format, $dt_separator);
 
-		$error_params = Array( $this->HumanFormat($format), adodb_date($format), 'value' => $value );
+		$error_params = array(
+			'format' => $this->HumanFormat($format),
+			'sample' => adodb_date($format),
+			'value' => $value,
+		);
 
 		$hour = 0;
 		$minute = 0;
Index: branches/5.2.x/core/kernel/utility/validator.php
===================================================================
--- branches/5.2.x/core/kernel/utility/validator.php
+++ branches/5.2.x/core/kernel/utility/validator.php
@@ -440,15 +440,16 @@
 			$params = array();
 		}
 
-		$field_phrase = $this->Application->isAdmin ? 'la_fld_' . $field : 'lu_fld_' . $field;
-		$params['field'] = $this->Application->Phrase($field_phrase);
-
-		foreach ( $params as $param_name => $param_value ) {
-			$msg = str_replace('{' . $param_name . '}', $param_value, $msg, $replacement_count);
+		if ( $params && preg_match('/%[^\s]/', $msg) ) {
+			$msg = vsprintf($msg, array_values($params));
 		}
+		else {
+			$field_phrase = $this->Application->isAdmin ? 'la_fld_' . $field : 'lu_fld_' . $field;
+			$params['field'] = $this->Application->Phrase($field_phrase);
 
-		if ( strpos($msg, '%s') !== false ) {
-			trigger_error('Unexpected "%s" in field "<b>' . $field . '</b>" validation error message (pseudo: "<b>' . $error_pseudo . '</b>") in "<b>' . $this->dataSource->Prefix . '</b>" unit', E_USER_WARNING);
+			foreach ( $params as $param_name => $param_value ) {
+				$msg = str_replace('{' . $param_name . '}', $param_value, $msg);
+			}
 		}
 
 		return $msg;