Index: wp-includes/wp-db.php
===================================================================
--- wp-includes/wp-db.php	(revision 3622)
+++ wp-includes/wp-db.php	(working copy)
@@ -305,7 +305,9 @@
 	function bail($message) { // Just wraps errors in a nice header and footer
 	if ( !$this->show_errors )
 		return false;
+	status_header(503);
 	header( 'Content-Type: text/html; charset=utf-8');
+	
 	echo <<<HEAD
 	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 	<html xmlns="http://www.w3.org/1999/xhtml">
@@ -360,4 +362,4 @@
 }
 
 $wpdb = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
-?>
\ No newline at end of file
+?>
Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 3622)
+++ wp-includes/functions.php	(working copy)
@@ -2286,20 +2286,15 @@
 	$wp->main($query_vars);
 }
 
-function status_header( $header ) {
-	if ( 200 == $header )
-		$text = 'OK';
-	elseif ( 301 == $header )
-		$text = 'Moved Permanently';
-	elseif ( 302 == $header )
-		$text = 'Moved Temporarily';
-	elseif ( 304 == $header )
-		$text = 'Not Modified';
-	elseif ( 404 == $header )
-		$text = 'Not Found';
-	elseif ( 410 == $header )
-		$text = 'Gone';
+function header_num_to_desc($num) {
+	global $http_resp_codes;		
+	return $http_resp_codes[$header];
+}
 
+function status_header( $header, $text='' ) {
+	if ( '' == $text) {
+		$text = header_num_to_desc($header);
+	}
 	@header("HTTP/1.1 $header $text");
 	@header("Status: $header $text");
 }
Index: wp-includes/vars.php
===================================================================
--- wp-includes/vars.php	(revision 3622)
+++ wp-includes/vars.php	(working copy)
@@ -110,4 +110,46 @@
 	$wp_smiliesreplace[] = " <img src='" . get_settings('siteurl') . "/wp-includes/images/smilies/$img' alt='$smiley_masked' class='wp-smiley' /> ";
 }
 
+$http_resp_codes = array (
+	100 => "Continue",
+	101 => "Switching Protocols",
+	200 => "OK",
+	201 => "Created",
+	202 => "Accepted",
+	203 => "Non-Authoritative Information",
+	204 => "No Content",
+	205 => "Reset Content",
+	206 => "Partial Content",
+	300 => "Multiple Choices",
+	301 => "Moved Permanently",
+	302 => "Found",
+	303 => "See Other",
+	304 => "Not Modified",
+	305 => "Use Proxy",
+	307 => "Temporary Redirect",
+	400 => "Bad Request",
+	401 => "Unauthorized",
+	403 => "Forbidden",
+	404 => "Not Found",
+	405 => "Method Not Allowed",
+	406 => "Not Acceptable",
+	407 => "Proxy Authentication Required",
+	408 => "Request Timeout",
+	409 => "Conflict",
+	410 => "Gone",
+	411 => "Length Required",
+	412 => "Precondition Failed",
+	413 => "Request Entity Too Large",
+	414 => "Request-URI Too Long",
+	415 => "Unsupported Media Type",
+	416 => "Requested Range Not Satisfiable",
+	417 => "Expectation Failed",
+	500 => "Internal Server Error",
+	501 => "Not Implemented",
+	502 => "Bad Gateway",
+	503 => "Service Unavailable",
+	504 => "Gateway Timeout",
+	505 => "HTTP Version Not Supported"
+);
+
 ?>
