diff --git a/includes/install.core.inc b/includes/install.core.inc
index ec3a853..73b7d3e 100644
--- a/includes/install.core.inc
+++ b/includes/install.core.inc
@@ -1441,8 +1441,6 @@ function install_configure_form($form, &$form_state, &$install_state) {
   }
 
   drupal_add_js(drupal_get_path('module', 'system') . '/system.js');
-  // Add JavaScript time zone detection.
-  drupal_add_js('misc/timezone.js');
   // We add these strings as settings because JavaScript translation does not
   // work on install time.
   drupal_add_js(array('copyFieldValue' => array('edit-site-mail' => array('edit-account-mail'))), 'setting');
@@ -1450,6 +1448,12 @@ function install_configure_form($form, &$form_state, &$install_state) {
   // Add JS to show / hide the 'Email administrator about site updates' elements
   drupal_add_js('jQuery(function () { Drupal.hideEmailAdministratorCheckbox() });', 'inline');
   // Build menu to allow clean URL check.
+  // Add JavaScript time zone detection, only if a time zone hasn't been
+  // selected already.
+  if (!variable_get('date_default_timezone') && empty($form_state['input']['date_default_timezone'])) {
+    $form['server_settings']['date_default_timezone']['#attached']['js'][] = 'misc/timezone.js';
+  }
+
   menu_rebuild();
 
   // Cache a fully-built schema. This is necessary for any invocation of
