diff --git a/core/modules/user/user.admin.inc b/core/modules/user/user.admin.inc
index f7d4552..d0780ed 100644
--- a/core/modules/user/user.admin.inc
+++ b/core/modules/user/user.admin.inc
@@ -4,7 +4,6 @@
  * @file
  * Admin page callback file for the user module.
  */
-
 function user_admin($callback_arg = '') {
   $op = isset($_POST['op']) ? $_POST['op'] : $callback_arg;
 
@@ -160,10 +159,10 @@ function user_admin_account() {
 
   $query = $query->extend('PagerDefault')->extend('TableSort');
   $query
-    ->fields('u', array('uid', 'name', 'status', 'created', 'access'))
-    ->limit(50)
-    ->orderByHeader($header)
-    ->setCountQuery($count_query);
+      ->fields('u', array('uid', 'name', 'status', 'created', 'access'))
+      ->limit(50)
+      ->orderByHeader($header)
+      ->setCountQuery($count_query);
   $result = $query->execute();
 
   $form['options'] = array(
@@ -203,10 +202,10 @@ function user_admin_account() {
 
     $options[$account->uid] = array(
       'username' => theme('username', array('account' => $account)),
-      'status' =>  $status[$account->status],
+      'status' => $status[$account->status],
       'roles' => theme('item_list', array('items' => $users_roles)),
       'member_for' => format_interval(REQUEST_TIME - $account->created),
-      'access' =>  $account->access ? t('@time ago', array('@time' => format_interval(REQUEST_TIME - $account->access))) : t('never'),
+      'access' => $account->access ? t('@time ago', array('@time' => format_interval(REQUEST_TIME - $account->access))) : t('never'),
       'operations' => array('data' => array('#type' => 'link', '#title' => t('edit'), '#href' => "user/$account->uid/edit", '#options' => array('query' => $destination))),
     );
   }
@@ -332,6 +331,20 @@ function user_admin_settings() {
     }
   }
 
+  // Configure one-time login link timeout
+  $form['registration_cancellation']['user_pass_reset_timeout'] = array(
+    '#type' => 'select',
+    '#title' => t('How long will a one-time login link be valid?'),
+    '#default_value' => variable_get('user_pass_reset_timeout', 86400),
+    '#description' => t("Users receive a one-time login link via email when resetting their passwords. Select a length of time for which a link will be accepted after it is initially requested."),
+    '#options' => array(
+      86400 => t('1 day'),
+      86400 * 2 => t('2 days'),
+      86400 * 7 => t('1 week'),
+      86400 * 14 => t('2 weeks'),
+    ),
+  );
+
   // Account settings.
   $form['personalization'] = array(
     '#type' => 'fieldset',
@@ -344,7 +357,7 @@ function user_admin_settings() {
   );
   // If picture support is enabled, check whether the picture directory exists.
   if (variable_get('user_pictures', 0)) {
-    $picture_path =  file_default_scheme() . '://' . variable_get('user_picture_path', 'pictures');
+    $picture_path = file_default_scheme() . '://' . variable_get('user_picture_path', 'pictures');
     if (!file_prepare_directory($picture_path, FILE_CREATE_DIRECTORY)) {
       form_set_error('user_picture_path', t('The directory %directory does not exist or is not writable.', array('%directory' => $picture_path)));
       watchdog('file system', 'The directory %directory does not exist or is not writable.', array('%directory' => $picture_path), WATCHDOG_ERROR);
@@ -829,9 +842,9 @@ function user_admin_roles($form, $form_state) {
   $order = 0;
   foreach ($roles as $rid => $name) {
     $form['roles'][$rid]['#role'] = (object) array(
-      'rid' => $rid,
-      'name' => $name,
-      'weight' => $order,
+          'rid' => $rid,
+          'name' => $name,
+          'weight' => $order,
     );
     $form['roles'][$rid]['#weight'] = $order;
     $form['roles'][$rid]['weight'] = array(
diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc
index c54bd4c..febf841 100644
--- a/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -113,8 +113,8 @@ function user_pass_reset($form, &$form_state, $uid, $timestamp, $hashed_pass, $a
     drupal_goto();
   }
   else {
-    // Time out, in seconds, until login URL expires. 24 hours = 86400 seconds.
-    $timeout = 86400;
+    // Time out, in seconds, until login URL expires. By default: 24 hours (86400 seconds).
+    $timeout = variable_get('user_pass_reset_timeout', 86400);
     $current = REQUEST_TIME;
     // Some redundant checks for extra security ?
     $users = user_load_multiple(array($uid), array('status' => '1'));
