Index: install.php
===================================================================
RCS file: /cvs/drupal/drupal/install.php,v
retrieving revision 1.69
diff -u -p -r1.69 install.php
--- install.php  20 Jul 2007 05:40:14 -0000  1.69
+++ install.php  25 Jul 2007 16:39:55 -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  25 Jul 2007 16:40:00 -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  25 Jul 2007 16:40:01 -0000
@@ -168,6 +168,14 @@ Drupal.evaluatePasswordStrength = functi
 };

 /**
+ * Set the client's system timezone as default values of form fields.
+ */
+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
  * "Picture support" radio buttons.
Index: modules/user/user.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/user/user.module,v
retrieving revision 1.822
diff -u -p -r1.822 user.module
--- modules/user/user.module  25 Jul 2007 14:49:55 -0000  1.822
+++ modules/user/user.module  25 Jul 2007 16:40:15 -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,23 @@ function user_register() {
   else {
     $form = array_merge($form, $extra);
   }
+
+  // Override field ID; Don't change timezone on user edit forms
+  $form['timezone'] = array(
+    '#type' => 'hidden',
+    '#default_value' => variable_get('date_default_timezone', NULL),
+    '#id' => 'edit-user-register-timezone',
+  );
+
+  // Add the javascript callback 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';

