diff --git a/modules/simpletest/tests/upgrade/drupal-6.bare.database.php b/modules/simpletest/tests/upgrade/drupal-6.bare.database.php
index 7e78e1b99018280bf3dd6aacc0f6ef44f79e1402..9188fdab3c43409847f017ede42b53887f565b9b 100644
--- a/modules/simpletest/tests/upgrade/drupal-6.bare.database.php
+++ b/modules/simpletest/tests/upgrade/drupal-6.bare.database.php
@@ -7902,7 +7902,7 @@
   'access' => '0',
   'login' => '0',
   'status' => '0',
-  'timezone' => NULL,
+  'timezone' => '-21600',
   'language' => '',
   'picture' => '',
   'init' => '',
@@ -7923,7 +7923,7 @@
   'access' => '1277671612',
   'login' => '1277671612',
   'status' => '1',
-  'timezone' => NULL,
+  'timezone' => '-21600',
   'language' => '',
   'picture' => '',
   'init' => 'admin@example.com',
diff --git a/update.php b/update.php
index 4c81955fdb654c8b7b27e5c19556e0df624e775e..cea987f93b3bd35f40aebbe8eefeb88409e638ac 100644
--- a/update.php
+++ b/update.php
@@ -349,9 +349,18 @@ function update_check_requirements() {
 require_once DRUPAL_ROOT . '/includes/unicode.inc';
 update_prepare_d7_bootstrap();
 
+// Temporarily disable configurable timezones so the upgrade process uses the
+// site-wide timezone. This prevents a PHP notice during session initlization
+// and before offsets have been converted in user_update_7002().
+$configurable_timezones = variable_get('configurable_timezones', 1);
+$conf['configurable_timezones'] = 0;
+
 // Determine if the current user has access to run update.php.
 drupal_bootstrap(DRUPAL_BOOTSTRAP_SESSION);
 
+// Reset configurable timezones.
+$conf['configurable_timezones'] = $configurable_timezones;
+
 // Only allow the requirements check to proceed if the current user has access
 // to run updates (since it may expose sensitive information about the site's
 // configuration).