Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 6180)
+++ wp-includes/functions.php	(working copy)
@@ -1415,4 +1415,21 @@
 	while ( @ob_end_flush() );
 }
 
+/*
+ * require_db_class_file() - require_once the correct database class file.
+ *
+ * This function is used to load the database class file either at runtime or by wp-admin/setup-config.php
+ * We must globalise $wpdb to ensure that it is defined globally by the inline code in wp-db.php
+ *
+ * @global $wpdb
+ */
+function require_db_class_file()
+{
+	global $wpdb;
+	if ( file_exists(ABSPATH . 'wp-content/db.php') )
+		require_once (ABSPATH . 'wp-content/db.php');
+	else
+		require_once (ABSPATH . WPINC . '/wp-db.php');
+}
+
 ?>
Index: wp-settings.php
===================================================================
--- wp-settings.php	(revision 6181)
+++ wp-settings.php	(working copy)
@@ -121,11 +121,7 @@
 require (ABSPATH . WPINC . '/compat.php');
 require (ABSPATH . WPINC . '/functions.php');
 
-if ( file_exists(ABSPATH . 'wp-content/db.php') )
-	require_once (ABSPATH . 'wp-content/db.php');
-else
-	require_once (ABSPATH . WPINC . '/wp-db.php');
-
+require_db_class_file();
 // $table_prefix is deprecated as of 2.1
 $wpdb->prefix = $table_prefix;
 
Index: wp-admin/setup-config.php
===================================================================
--- wp-admin/setup-config.php	(revision 6180)
+++ wp-admin/setup-config.php	(working copy)
@@ -160,7 +160,7 @@
 	define('DB_HOST', $dbhost);
 
 	// We'll fail here if the values are no good.
-	require_once('../wp-includes/wp-db.php');
+	require_db_class_file();
 	$handle = fopen('../wp-config.php', 'w');
 
 	foreach ($configFile as $line_num => $line) {

