diff --git a/wp-includes/class-wp-error.php b/wp-includes/class-wp-error.php
index 6f07a8b..bdd93e6 100644
--- a/wp-includes/class-wp-error.php
+++ b/wp-includes/class-wp-error.php
@@ -59,10 +59,7 @@ public function __construct( $code = '', $message = '', $data = '' ) {
 		if ( empty($code) )
 			return;
 
-		$this->errors[$code][] = $message;
-
-		if ( ! empty($data) )
-			$this->error_data[$code] = $data;
+		$this->add( $code, $message, $data );
 	}
 
 	/**
@@ -222,8 +219,18 @@ public function get_error_data($code = '') {
 	 */
 	public function add($code, $message, $data = '') {
 		$this->errors[$code][] = $message;
+
 		if ( ! empty($data) )
 			$this->error_data[$code] = $data;
+
+		/** 
+		 * Fires when an error is added to a WP_Error object.
+		 * 
+		 * @since 4.0.0 
+		 * 
+		 * @param WP_Error $this The WP_Error instance. 
+		 */ 
+		do_action( 'add_wp_error', $this ); 
 	}
 
 	/**
