Index: wp-login.php
===================================================================
--- wp-login.php	(revision 41788)
+++ wp-login.php	(working copy)
@@ -42,7 +42,7 @@
 		$wp_error = new WP_Error();
 
 	// Shake it!
-	$shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' );
+	$shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password', 'email_disabled' );
 	/**
 	 * Filters the error codes array for shaking the login form.
 	 *
@@ -386,9 +386,11 @@
 	 */
 	$message = apply_filters( 'retrieve_password_message', $message, $key, $user_login, $user_data );
 
-	if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) )
-		wp_die( __('The email could not be sent.') . "<br />\n" . __('Possible reason: your host may have disabled the mail() function.') );
-
+	if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ), $message ) ) {
+		$errors->add('email_disabled', __('<strong>ERROR</strong>: The email could not be sent. Please check your hosting server have enabled the mail() function.') );
+		return $errors;
+	}
+	
 	return true;
 }
 
