Index: install.php
===================================================================
RCS file: /cvs/drupal/drupal/install.php,v
retrieving revision 1.63
diff -u -p -r1.63 install.php
--- install.php	30 Jun 2007 08:17:05 -0000	1.63
+++ install.php	4 Jul 2007 15:30:36 -0000
@@ -914,7 +914,7 @@ function install_configure_form() {
 if (Drupal.jsEnabled) {
   $(document).ready(function() {
     Drupal.cleanURLsInstallCheck();
-    Drupal.installDefaultTimezone();
+    Drupal.setDefaultTimezone();
   });
 }', 'inline');
 
Index: modules/system/system.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.js,v
retrieving revision 1.9
diff -u -p -r1.9 system.js
--- modules/system/system.js	1 Jul 2007 15:37:09 -0000	1.9
+++ modules/system/system.js	4 Jul 2007 15:30:39 -0000
@@ -60,11 +60,6 @@ Drupal.cleanURLsInstallCheck = function(
   $("#clean-url").addClass('clean-url-processed');
 };
 
-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.
  */
@@ -85,4 +80,4 @@ Drupal.behaviors.dateTime = function(con
 
   // Trigger the event handler to show the form input if necessary.
   $('select.date-format', context).trigger('change');
-};
\ No newline at end of file
+};
Index: modules/user/user.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.js,v
retrieving revision 1.3
diff -u -p -r1.3 user.js
--- modules/user/user.js	1 Jul 2007 15:37:10 -0000	1.3
+++ modules/user/user.js	4 Jul 2007 15:30:41 -0000
@@ -178,3 +178,8 @@ Drupal.behaviors.userSettings = function
   });
 };
 
+Drupal.setDefaultTimezone = function() {
+  var offset = new Date().getTimezoneOffset() * -60;
+  $("#edit-date-default-timezone, #edit-user-register-timezone").val(offset);
+};
+
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.816
diff -u -p -r1.816 user.module
--- modules/user/user.module	2 Jul 2007 14:41:37 -0000	1.816
+++ modules/user/user.module	4 Jul 2007 15:30:57 -0000
@@ -269,7 +269,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;
@@ -1360,6 +1360,24 @@ 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',
+  );
+
+  // Add the javascript Killswitch to automatically set the timezone.
+  drupal_add_js('
+// Global Killswitch
+if (Drupal.jsEnabled) {
+  $(document).ready(function() {
+    Drupal.setDefaultTimezone();
+  });
+}', 'inline');
+
   $form['submit'] = array('#type' => 'submit', '#value' => t('Create new account'), '#weight' => 30);
   $form['#validate'][] = 'user_register_validate';
 
@@ -3323,4 +3341,4 @@ function user_block_user_action(&$object
 function user_block_ip_action() {
   db_query("INSERT INTO {access} (mask, type, status) VALUES ('%s', '%s', %d)", $_SERVER['REMOTE_ADDR'], 'host', 0);
   watchdog('action', 'Banned IP address %ip', array('%ip' => $_SERVER['REMOTE_ADDR']));
-}
\ No newline at end of file
+}
