Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 60559)
+++ wp-includes/functions.php	(working copy)
@@ -3886,6 +3886,25 @@
 		$message  .= "\n<p><a href='javascript:history.back()'>$back_text</a></p>";
 	}
 
+	// Ensure HTTP 500 status code for critical errors, even if headers were already sent.
+	// Check for fatal errors using error code 'internal_server_error' (language-independent).
+	$is_critical_error = false;
+	if ( function_exists( 'is_wp_error' ) && is_wp_error( $message ) ) {
+		$error_code = $message->get_error_code();
+		$is_critical_error = ( 'internal_server_error' === $error_code );
+	} elseif ( 'internal_server_error' === $parsed_args['code'] ) {
+		$is_critical_error = true;
+	}
+
+	// Also ensure HTTP 500 if response is already set to 500 (from fatal error handler).
+	if ( $is_critical_error || 500 === $parsed_args['response'] ) {
+		$parsed_args['response'] = 500;
+		// Set HTTP status code even if headers were already sent.
+		if ( function_exists( 'http_response_code' ) ) {
+			http_response_code( 500 );
+		}
+	}
+
 	if ( ! did_action( 'admin_head' ) ) :
 		if ( ! headers_sent() ) {
 			header( "Content-Type: text/html; charset={$parsed_args['charset']}" );
