Index: src/wp-admin/includes/class-wp-upgrader.php
===================================================================
--- src/wp-admin/includes/class-wp-upgrader.php	(revision 26053)
+++ src/wp-admin/includes/class-wp-upgrader.php	(working copy)
@@ -1532,7 +1532,7 @@
 
 		foreach ( $checksums as $file => $checksum ) {
 			// Skip files which get updated
-			if ( 'wp-content' == substr( $file, 0, 10 ) )
+			if ( 'wp-content' == substr( $file, 0, 10 ) || 'readme.html' == $file )
 				continue;
 			if ( ! file_exists( ABSPATH . $file ) || md5_file( ABSPATH . $file ) !== $checksum )
 				return false;
Index: src/wp-admin/includes/update.php
===================================================================
--- src/wp-admin/includes/update.php	(revision 26053)
+++ src/wp-admin/includes/update.php	(working copy)
@@ -364,8 +364,15 @@
 		 * This flag is cleared whenever a successful update occurs using Core_Upgrader.
 		 */
 		$comparison = ! empty( $failed['critical'] ) ? '>=' : '>';
-		if ( version_compare( $failed['attempted'], $wp_version, '>=' ) )
-			$nag = true;
+		if ( version_compare( $failed['attempted'], $wp_version, $comparison ) ) {
+			require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+			$upgrader = new Core_Upgrader;
+
+			if ( $upgrader->check_files() )
+				delete_site_option( 'auto_core_update_failed' );
+			else
+				$nag = true;
+		}
 	}
 
 	if ( ! $nag )
