Index: install.php
===================================================================
RCS file: /cvs/drupal/drupal/install.php,v
retrieving revision 1.60
diff -u -p -r1.60 install.php
--- install.php	8 Jun 2007 12:51:58 -0000	1.60
+++ install.php	14 Jun 2007 02:53:54 -0000
@@ -906,7 +906,6 @@ function install_configure_form() {
 if (Drupal.jsEnabled) {
   $(document).ready(function() {
     Drupal.cleanURLsInstallCheck();
-    Drupal.installDefaultTimezone();
   });
 }', 'inline');
 
Index: modules/system/system.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.js,v
retrieving revision 1.8
diff -u -p -r1.8 system.js
--- modules/system/system.js	8 Jun 2007 12:51:59 -0000	1.8
+++ modules/system/system.js	14 Jun 2007 02:54:02 -0000
@@ -52,11 +52,6 @@ Drupal.cleanURLsInstallCheck = function(
   }});
 };
 
-Drupal.installDefaultTimezone = function() {
-  var offset = new Date().getTimezoneOffset() * -60;
-  $("#edit-date-default-timezone").val(offset);
-};
-
 /**
  * Show/hide custom format sections on the date-time settings page.
  */
Index: modules/user/user.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.js,v
retrieving revision 1.2
diff -u -p -r1.2 user.js
--- modules/user/user.js	8 Jun 2007 06:04:15 -0000	1.2
+++ modules/user/user.js	14 Jun 2007 02:54:26 -0000
@@ -168,6 +168,11 @@ Drupal.evaluatePasswordStrength = functi
   return { strength: strength, message: msg };
 };
 
+Drupal.setDefaultTimezone = function() {
+  var offset = new Date().getTimezoneOffset() * -60;
+  $("#edit-date-default-timezone, #edit-user-register-timezone").val(offset);
+};
+
 /**
  * On the admin/user/settings page, conditionally show all of the
  * picture-related form elements depending on the current value of the
@@ -178,6 +183,7 @@ if (Drupal.jsEnabled) {
     $('div.user-admin-picture-radios input[@type=radio]').click(function () {
       $('div.user-admin-picture-settings')[['hide', 'show'][this.value]]();
     });
+    Drupal.setDefaultTimezone();
     Drupal.passwordAttach();
   });
 }
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.797
diff -u -p -r1.797 user.module
--- modules/user/user.module	12 Jun 2007 20:37:07 -0000	1.797
+++ modules/user/user.module	14 Jun 2007 02:54:42 -0000
@@ -224,7 +224,7 @@ function user_save($account, $array = ar
           $values[] = md5($value);
           $s[] = "'%s'";
           break;
-        case 'mode':     case 'sort':
+        case 'mode':       case 'sort':     case 'timezone':
         case 'threshold':  case 'created':  case 'access':
         case 'login':      case 'status':
           $fields[] = $key;
@@ -1319,9 +1319,20 @@ function user_register() {
   else {
     $form = array_merge($form, $extra);
   }
+
+  // Field ID is overridden; so, JS doesn't change timezone on user edit forms
+  // upon killswitch call.
+  $form['timezone'] = array(
+    '#type' => 'hidden',
+    '#default_value' => variable_get('date_default_timezone', NULL),
+    '#id' => 'edit-user-register-timezone',
+  );
+
   $form['submit'] = array('#type' => 'submit', '#value' => t('Create new account'), '#weight' => 30);
   $form['#validate'][] = 'user_register_validate';
 
+  // Add the JS for auto-timezone setting.
+  drupal_add_js(drupal_get_path('module', 'user') .'/user.js', 'module');
   return $form;
 }
 
