--- event.module.orig	2008-08-18 23:46:16.000000000 -0400
+++ event.module	2008-08-19 00:09:14.000000000 -0400
@@ -2087,30 +2087,40 @@
       }
       break;
     case 'system_date_time_settings':
-      $zones = event_zonelist('offset');
-      $form['date_default_timezone'] = array(
-        '#type' => 'select',
-        '#title' => t('Default time zone'),
-        '#default_value' => variable_get('date_default_timezone_id', 0) .'|'. variable_get('date_default_timezone', 0),
-        '#options' => $zones,
-        '#description' => t('Select the default site time zone.')
+      // Only display this part of the form if version 5.2 of the date module doesn't exist.
+      // If the date module is installed this part makes it so there are two date/timezone fields on the form.
+      // By skipping this one, we get the list of timezones from the date module, which mirror the timezone list in core (D7).
+      if (!(function_exists('date_timezone_update_site') && (variable_get('date_api_version', 0) == '5.2'))) {
+        $zones = event_zonelist('offset');
+        $form['date_default_timezone'] = array(
+          '#type' => 'select',
+          '#title' => t('Default time zone'),
+          '#default_value' => variable_get('date_default_timezone_id', 0) .'|'. variable_get('date_default_timezone', 0),
+          '#options' => $zones,
+          '#description' => t('Select the default site time zone.')
         );
         $submit['event_extra_setting_form_submit'] = array();
         $form['#submit'] = $form['#submit'] + $submit;
+      }
       break;
     case 'user_edit':
       if (variable_get('configurable_timezones', 1) && !arg(3)) {
-        $account = user_load(array('uid' => arg(1)));
-        $zones = event_zonelist('offset');
-        $form['timezone']['timezone'] = array(
-          '#type' => 'select',
-          '#title' => t('Time zone'),
-          '#default_value' => strlen($account->timezone) ? ($account->timezone_id .'|'. $account->timezone) : (variable_get('date_default_timezone_id', 0) .'|'. variable_get('date_default_timezone', 0)),
-          '#options' => $zones,
-          '#description' => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.'),
-          );
-        $submit['event_extra_user_form_submit'] = array();
-        $form['#submit'] = $form['#submit'] + $submit;
+        // Only display this part of the form if version 5.2 of the date module doesn't exist.
+        // If the date module is installed this part makes it so there are two date/timezone fields on the form.
+        // By skipping this one, we get the list of timezones from the date module, which mirror the timezone list in core (D7).
+        if (!(function_exists('date_timezone_update_site') && (variable_get('date_api_version', 0) == '5.2'))) {
+          $account = user_load(array('uid' => arg(1)));
+          $zones = event_zonelist('offset');
+          $form['timezone']['timezone'] = array(
+            '#type' => 'select',
+            '#title' => t('Time zone'),
+            '#default_value' => strlen($account->timezone) ? ($account->timezone_id .'|'. $account->timezone) : (variable_get('date_default_timezone_id', 0) .'|'. variable_get('date_default_timezone', 0)),
+            '#options' => $zones,
+            '#description' => t('Select your current local time. Dates and times throughout this site will be displayed using this time zone.'),
+            );
+          $submit['event_extra_user_form_submit'] = array();
+          $form['#submit'] = $form['#submit'] + $submit;
+        }
       }
   }
 }
@@ -2922,6 +2932,24 @@
 /**
  * Returns a single timezone
  *
+ * @param $name timezone name
+ *
+ * @return
+ */
+function event_zonelist_by_name($name) {
+  static $zone_names = array();
+
+  if (!isset($zone_names[$name])) {
+    $zone = db_fetch_array(db_query("SELECT * FROM {event_timezones} WHERE name = '%s'", $name));
+    $zone_names[$name] = $zone;
+  }
+
+  return $zone_names[$name];
+}
+
+/**
+ * Returns a single timezone
+ *
  * @param $id timezone id
  *
  * @return 
