diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 6de48d6e4bf7cab165ee7ddef32b8cb47f43454c..78a41f732a31c9603f5637e32ccfca1d3913f302 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -707,15 +707,6 @@ function drupal_unpack($obj, $field = 'data') {
   return $obj;
 }
 
-/**
- * Return the URI of the referring page.
- */
-function referer_uri() {
-  if (isset($_SERVER['HTTP_REFERER'])) {
-    return $_SERVER['HTTP_REFERER'];
-  }
-}
-
 /**
  * Encode special characters in a plain-text string for display as HTML.
  *
@@ -825,9 +816,9 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO
       'link'        => $link,
       'user'        => $user,
       'request_uri' => $base_root . request_uri(),
-      'referer'     => referer_uri(),
+      'referer'     => $_SERVER['HTTP_REFERER'],
       'ip'          => ip_address(),
-      'timestamp'   => time(),
+      'timestamp'   => $_SERVER['REQUEST_TIME'],
     );
 
     // Call the logging hooks to log/process the message
diff --git a/includes/cache.inc b/includes/cache.inc
index 58e75e1061ad79fb365e666ee682665fa21df788..7c17e54849d93acf69a4b3e09e8cc0c9bb483da2 100644
--- a/includes/cache.inc
+++ b/includes/cache.inc
@@ -17,7 +17,7 @@ function cache_get($cid, $table = 'cache') {
 
   // Garbage collection necessary when enforcing a minimum cache lifetime
   $cache_flush = variable_get('cache_flush', 0);
-  if ($cache_flush && ($cache_flush + variable_get('cache_lifetime', 0) <= time())) {
+  if ($cache_flush && ($cache_flush + variable_get('cache_lifetime', 0) <= $_SERVER['REQUEST_TIME'])) {
     // Reset the variable immediately to prevent a meltdown in heavy load situations.
     variable_set('cache_flush', 0);
     // Time to flush old cache data
@@ -101,7 +101,7 @@ function cache_get($cid, $table = 'cache') {
 function cache_set($cid, $data, $table = 'cache', $expire = CACHE_PERMANENT, $headers = NULL) {
   $fields = array(
     'serialized' => 0,
-    'created' => time(),
+    'created' => $_SERVER['REQUEST_TIME'],
     'expire' => $expire,
     'headers' => $headers,
   );
@@ -152,23 +152,23 @@ function cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE) {
       // will be saved into the sessions table by sess_write(). We then
       // simulate that the cache was flushed for this user by not returning
       // cached data that was cached before the timestamp.
-      $user->cache = time();
+      $user->cache = $_SERVER['REQUEST_TIME'];
 
       $cache_flush = variable_get('cache_flush', 0);
       if ($cache_flush == 0) {
         // This is the first request to clear the cache, start a timer.
-        variable_set('cache_flush', time());
+        variable_set('cache_flush', $_SERVER['REQUEST_TIME']);
       }
-      else if (time() > ($cache_flush + variable_get('cache_lifetime', 0))) {
+      else if ($_SERVER['REQUEST_TIME'] > ($cache_flush + variable_get('cache_lifetime', 0))) {
         // Clear the cache for everyone, cache_flush_delay seconds have
         // passed since the first request to clear the cache.
-        db_query("DELETE FROM {" . $table . "} WHERE expire != %d AND expire < %d", CACHE_PERMANENT, time());
+        db_query("DELETE FROM {" . $table . "} WHERE expire != %d AND expire < %d", CACHE_PERMANENT, $_SERVER['REQUEST_TIME']);
         variable_set('cache_flush', 0);
       }
     }
     else {
       // No minimum cache lifetime, flush all temporary cache entries now.
-      db_query("DELETE FROM {" . $table . "} WHERE expire != %d AND expire < %d", CACHE_PERMANENT, time());
+      db_query("DELETE FROM {" . $table . "} WHERE expire != %d AND expire < %d", CACHE_PERMANENT, $_SERVER['REQUEST_TIME']);
     }
   }
   else {
diff --git a/includes/common.inc b/includes/common.inc
index dae0b0d61f0ac03b81a48130131e54180ceb1b6d..be43d66384b742cc3011c87293c141873f5772fd 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -873,7 +873,7 @@ function valid_url($url, $absolute = FALSE) {
  *   The name of an event.
  */
 function flood_register_event($name) {
-  db_query("INSERT INTO {flood} (event, hostname, timestamp) VALUES ('%s', '%s', %d)", $name, ip_address(), time());
+  db_query("INSERT INTO {flood} (event, hostname, timestamp) VALUES ('%s', '%s', %d)", $name, ip_address(), $_SERVER['REQUEST_TIME']);
 }
 
 /**
@@ -890,7 +890,7 @@ function flood_register_event($name) {
  *   True if the user did not exceed the hourly threshold. False otherwise.
  */
 function flood_is_allowed($name, $threshold) {
-  $number = db_result(db_query("SELECT COUNT(*) FROM {flood} WHERE event = '%s' AND hostname = '%s' AND timestamp > %d", $name, ip_address(), time() - 3600));
+  $number = db_result(db_query("SELECT COUNT(*) FROM {flood} WHERE event = '%s' AND hostname = '%s' AND timestamp > %d", $name, ip_address(), $_SERVER['REQUEST_TIME'] - 3600));
   return ($number < $threshold ? TRUE : FALSE);
 }
 
@@ -2074,7 +2074,7 @@ function drupal_get_js($scope = 'header', $javascript = NULL) {
   // browser-caching. The string changes on every update or full cache
   // flush, forcing browsers to load a new copy of the files, as the
   // URL changed. Files that should not be cached (see drupal_add_js())
-  // get time() as query-string instead, to enforce reload on every
+  // get $_SERVER['REQUEST_TIME'] as query-string instead, to enforce reload on every
   // page request.
   $query_string = '?' . substr(variable_get('css_js_query_string', '0'), 0, 1);
 
@@ -2101,7 +2101,7 @@ function drupal_get_js($scope = 'header', $javascript = NULL) {
         // Additionally, go through any remaining scripts if JS preprocessing is on and output the non-cached ones.
         foreach ($data as $path => $info) {
           if (!$info['preprocess'] || !$is_writable || !$preprocess_js) {
-            $no_preprocess[$type] .= '<script type="text/javascript"' . ($info['defer'] ? ' defer="defer"' : '') . ' src="' . base_path() . $path . ($info['cache'] ? $query_string : '?' . time()) . "\"></script>\n";
+            $no_preprocess[$type] .= '<script type="text/javascript"' . ($info['defer'] ? ' defer="defer"' : '') . ' src="' . base_path() . $path . ($info['cache'] ? $query_string : '?' . $_SERVER['REQUEST_TIME']) . "\"></script>\n";
           }
           else {
             $files[$path] = $info;
@@ -2553,7 +2553,7 @@ function drupal_cron_run() {
   $semaphore = variable_get('cron_semaphore', FALSE);
 
   if ($semaphore) {
-    if (time() - $semaphore > 3600) {
+    if ($_SERVER['REQUEST_TIME'] - $semaphore > 3600) {
       // Either cron has been running for more than an hour or the semaphore
       // was not reset due to a database error.
       watchdog('cron', 'Cron has been running for more than an hour and is most likely stuck.', array(), WATCHDOG_ERROR);
@@ -2571,13 +2571,13 @@ function drupal_cron_run() {
     register_shutdown_function('drupal_cron_cleanup');
 
     // Lock cron semaphore
-    variable_set('cron_semaphore', time());
+    variable_set('cron_semaphore', $_SERVER['REQUEST_TIME']);
 
     // Iterate through the modules calling their cron handlers (if any):
     module_invoke_all('cron');
 
     // Record cron time
-    variable_set('cron_last', time());
+    variable_set('cron_last', $_SERVER['REQUEST_TIME']);
     watchdog('cron', 'Cron run completed.', array(), WATCHDOG_NOTICE);
 
     // Release cron semaphore
diff --git a/includes/file.inc b/includes/file.inc
index 1be45182303c1ae31db1ed2d5d8bbf5394fd3433..abf5f69e489e9e257f41509329886845185b2d39 100644
--- a/includes/file.inc
+++ b/includes/file.inc
@@ -613,7 +613,7 @@ function file_save_upload($source, $validators = array(), $dest = FALSE, $replac
     // If we made it this far it's safe to record this file in the database.
     $file->uid = $user->uid;
     $file->status = FILE_STATUS_TEMPORARY;
-    $file->timestamp = time();
+    $file->timestamp = $_SERVER['REQUEST_TIME'];
     drupal_write_record('files', $file);
 
     // Add file to the cache.
diff --git a/includes/form.inc b/includes/form.inc
index f8341cc5b26e5f48f53baf21ef82ac96d03b3ff5..d50c9efeb2de46811b1d497e84aa2b25638dd4c7 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -235,9 +235,9 @@ function form_set_cache($form_build_id, $form, $form_state) {
   // 6 hours cache life time for forms should be plenty.
   $expire = 21600;
 
-  cache_set('form_' . $form_build_id, $form, 'cache_form', time() + $expire);
+  cache_set('form_' . $form_build_id, $form, 'cache_form', $_SERVER['REQUEST_TIME'] + $expire);
   if (!empty($form_state['storage'])) {
-    cache_set('storage_' . $form_build_id, $form_state['storage'], 'cache_form', time() + $expire);
+    cache_set('storage_' . $form_build_id, $form_state['storage'], 'cache_form', $_SERVER['REQUEST_TIME'] + $expire);
   }
 }
 
@@ -1645,9 +1645,9 @@ function theme_date($element) {
 function form_process_date($element) {
   // Default to current date
   if (empty($element['#value'])) {
-    $element['#value'] = array('day' => format_date(time(), 'custom', 'j'),
-                            'month' => format_date(time(), 'custom', 'n'),
-                            'year' => format_date(time(), 'custom', 'Y'));
+    $element['#value'] = array('day' => format_date($_SERVER['REQUEST_TIME'], 'custom', 'j'),
+                            'month' => format_date($_SERVER['REQUEST_TIME'], 'custom', 'n'),
+                            'year' => format_date($_SERVER['REQUEST_TIME'], 'custom', 'Y'));
   }
 
   $element['#tree'] = TRUE;
@@ -2483,7 +2483,7 @@ function batch_process($redirect = NULL, $url = NULL) {
 
       // Initiate db storage in order to get a batch id. We have to provide
       // at least an empty string for the (not null) 'token' column.
-      db_query("INSERT INTO {batch} (token, timestamp) VALUES ('', %d)", time());
+      db_query("INSERT INTO {batch} (token, timestamp) VALUES ('', %d)", $_SERVER['REQUEST_TIME']);
       $batch['id'] = db_last_insert_id('batch', 'bid');
 
       // Now that we have a batch id, we can generate the redirection link in
diff --git a/includes/session.inc b/includes/session.inc
index 13a043cef859b5f7b031ea7c981fdf02b8d7b6f3..ba579d5ee14aecd033aa7c758c5f26e78502b4c7 100644
--- a/includes/session.inc
+++ b/includes/session.inc
@@ -73,17 +73,17 @@ function sess_write($key, $value) {
     // and gives more useful statistics. We can't eliminate anonymous session
     // table rows without breaking "Who's Online" block.
     if ($user->uid || $value || count($_COOKIE)) {
-      db_query("INSERT INTO {sessions} (sid, uid, cache, hostname, session, timestamp) VALUES ('%s', %d, %d, '%s', '%s', %d)", $key, $user->uid, isset($user->cache) ? $user->cache : 0, ip_address(), $value, time());
+      db_query("INSERT INTO {sessions} (sid, uid, cache, hostname, session, timestamp) VALUES ('%s', %d, %d, '%s', '%s', %d)", $key, $user->uid, isset($user->cache) ? $user->cache : 0, ip_address(), $value, $_SERVER['REQUEST_TIME']);
     }
   }
   else {
-    db_query("UPDATE {sessions} SET uid = %d, cache = %d, hostname = '%s', session = '%s', timestamp = %d WHERE sid = '%s'", $user->uid, isset($user->cache) ? $user->cache : 0, ip_address(), $value, time(), $key);
+    db_query("UPDATE {sessions} SET uid = %d, cache = %d, hostname = '%s', session = '%s', timestamp = %d WHERE sid = '%s'", $user->uid, isset($user->cache) ? $user->cache : 0, ip_address(), $value, $_SERVER['REQUEST_TIME'], $key);
 
     if (db_affected_rows()) {
       // Last access time is updated no more frequently than once every 180 seconds.
       // This reduces contention in the users table.
-      if ($user->uid && time() - $user->access > variable_get('session_write_interval', 180)) {
-        db_query("UPDATE {users} SET access = %d WHERE uid = %d", time(), $user->uid);
+      if ($user->uid && $_SERVER['REQUEST_TIME'] - $user->access > variable_get('session_write_interval', 180)) {
+        db_query("UPDATE {users} SET access = %d WHERE uid = %d", $_SERVER['REQUEST_TIME'], $user->uid);
       }
     }
   }
@@ -143,7 +143,7 @@ function sess_gc($lifetime) {
   // for three weeks before deleting them, you need to set gc_maxlifetime
   // to '1814400'. At that value, only after a user doesn't log in after
   // three weeks (1814400 seconds) will his/her session be removed.
-  db_query("DELETE FROM {sessions} WHERE timestamp < %d", time() - $lifetime);
+  db_query("DELETE FROM {sessions} WHERE timestamp < %d", $_SERVER['REQUEST_TIME'] - $lifetime);
 
   return TRUE;
 }
diff --git a/install.php b/install.php
index c606aecbe106ca3f3aa0aa323291c19fd26391eb..0ff2573bbc156e526e424e5c32f6d57593627993 100644
--- a/install.php
+++ b/install.php
@@ -1174,7 +1174,7 @@ function install_configure_form_submit($form, &$form_state) {
   $user->sid = session_id();
 
   // Record when this install ran.
-  variable_set('install_time', time());
+  variable_set('install_time', $_SERVER['REQUEST_TIME']);
 }
 
 // Start the installer.
diff --git a/modules/aggregator/aggregator.admin.inc b/modules/aggregator/aggregator.admin.inc
index 359771b682674a50d61dd7cd2dd30a1dc71226f5..3fdad5c6925d6eaaf210e0e720078b14092a11f7 100644
--- a/modules/aggregator/aggregator.admin.inc
+++ b/modules/aggregator/aggregator.admin.inc
@@ -27,7 +27,7 @@ function aggregator_view() {
   $header = array(t('Title'), t('Items'), t('Last update'), t('Next update'), array('data' => t('Operations'), 'colspan' => '3'));
   $rows = array();
   while ($feed = db_fetch_object($result)) {
-    $rows[] = array(l($feed->title, "aggregator/sources/$feed->fid"), format_plural($feed->items, '1 item', '@count items'), ($feed->checked ? t('@time ago', array('@time' => format_interval(time() - $feed->checked))) : t('never')), ($feed->checked ? t('%time left', array('%time' => format_interval($feed->checked + $feed->refresh - time()))) : t('never')), l(t('edit'), "admin/content/aggregator/edit/feed/$feed->fid"), l(t('remove items'), "admin/content/aggregator/remove/$feed->fid"), l(t('update items'), "admin/content/aggregator/update/$feed->fid"));
+    $rows[] = array(l($feed->title, "aggregator/sources/$feed->fid"), format_plural($feed->items, '1 item', '@count items'), ($feed->checked ? t('@time ago', array('@time' => format_interval($_SERVER['REQUEST_TIME'] - $feed->checked))) : t('never')), ($feed->checked ? t('%time left', array('%time' => format_interval($feed->checked + $feed->refresh - $_SERVER['REQUEST_TIME']))) : t('never')), l(t('edit'), "admin/content/aggregator/edit/feed/$feed->fid"), l(t('remove items'), "admin/content/aggregator/remove/$feed->fid"), l(t('update items'), "admin/content/aggregator/update/$feed->fid"));
   }
   $output .= theme('table', $header, $rows);
 
diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module
index 50ec8c0e2e17ad835c9f76f333b0b507da6aa09f..851fc38a1199a2226a14a8b1e0749efc247ca2a1 100644
--- a/modules/aggregator/aggregator.module
+++ b/modules/aggregator/aggregator.module
@@ -281,7 +281,7 @@ function aggregator_perm() {
  * Checks news feeds for updates once their refresh interval has elapsed.
  */
 function aggregator_cron() {
-  $result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < %d', time());
+  $result = db_query('SELECT * FROM {aggregator_feed} WHERE checked + refresh < %d', $_SERVER['REQUEST_TIME']);
   while ($feed = db_fetch_array($result)) {
     aggregator_refresh($feed);
   }
@@ -592,7 +592,7 @@ function aggregator_refresh($feed) {
   // Process HTTP response code.
   switch ($result->code) {
     case 304:
-      db_query('UPDATE {aggregator_feed} SET checked = %d WHERE fid = %d', time(), $feed['fid']);
+      db_query('UPDATE {aggregator_feed} SET checked = %d WHERE fid = %d', $_SERVER['REQUEST_TIME'], $feed['fid']);
       drupal_set_message(t('There is no new syndicated content from %site.', array('%site' => $feed['title'])));
       break;
     case 301:
@@ -606,7 +606,7 @@ function aggregator_refresh($feed) {
       // data. If both are equal we say that feed is not updated.
       $md5 = md5($result->data);
       if ($feed['hash'] == $md5) {
-        db_query('UPDATE {aggregator_feed} SET checked = %d WHERE fid = %d', time(), $feed['fid']);
+        db_query('UPDATE {aggregator_feed} SET checked = %d WHERE fid = %d', $_SERVER['REQUEST_TIME'], $feed['fid']);
         drupal_set_message(t('There is no new syndicated content from %site.', array('%site' => $feed['title'])));
         break;
       }
@@ -636,7 +636,7 @@ function aggregator_refresh($feed) {
 
         $etag = empty($result->headers['ETag']) ? '' : $result->headers['ETag'];
         // Update the feed data.
-        db_query("UPDATE {aggregator_feed} SET url = '%s', checked = %d, link = '%s', description = '%s', image = '%s', hash = '%s', etag = '%s', modified = %d WHERE fid = %d", $feed['url'], time(), $channel['LINK'], $channel['DESCRIPTION'], $image, $md5, $etag, $modified, $feed['fid']);
+        db_query("UPDATE {aggregator_feed} SET url = '%s', checked = %d, link = '%s', description = '%s', image = '%s', hash = '%s', etag = '%s', modified = %d WHERE fid = %d", $feed['url'], $_SERVER['REQUEST_TIME'], $channel['LINK'], $channel['DESCRIPTION'], $image, $md5, $etag, $modified, $feed['fid']);
 
         // Clear the cache.
         cache_clear_all();
@@ -803,14 +803,14 @@ function aggregator_parse_feed(&$data, $feed) {
     }
 
     if (!$timestamp) {
-      $timestamp = isset($entry->timestamp) ? $entry->timestamp : time();
+      $timestamp = isset($entry->timestamp) ? $entry->timestamp : $_SERVER['REQUEST_TIME'];
     }
     $item += array('AUTHOR' => '', 'DESCRIPTION' => '');
     aggregator_save_item(array('iid' => (isset($entry->iid) ? $entry->iid : ''), 'fid' => $feed['fid'], 'timestamp' => $timestamp, 'title' => $title, 'link' => $link, 'author' => $item['AUTHOR'], 'description' => $item['DESCRIPTION'], 'guid' => $guid));
   }
 
   // Remove all items that are older than flush item timer.
-  $age = time() - variable_get('aggregator_clear', 9676800);
+  $age = $_SERVER['REQUEST_TIME'] - variable_get('aggregator_clear', 9676800);
   $result = db_query('SELECT iid FROM {aggregator_item} WHERE fid = %d AND timestamp < %d', $feed['fid'], $age);
 
   $items = array();
diff --git a/modules/aggregator/aggregator.pages.inc b/modules/aggregator/aggregator.pages.inc
index 7add58841dd934e2325008a9f3db5b8d23916626..6406cded6c99153e68ad8c4e22357b1198b8beb2 100644
--- a/modules/aggregator/aggregator.pages.inc
+++ b/modules/aggregator/aggregator.pages.inc
@@ -265,7 +265,7 @@ function template_preprocess_aggregator_item(&$variables) {
     $variables['source_title'] = check_plain($item->ftitle);
   }
   if (date('Ymd', $item->timestamp) == date('Ymd')) {
-    $variables['source_date'] = t('%ago ago', array('%ago' => format_interval(time() - $item->timestamp)));
+    $variables['source_date'] = t('%ago ago', array('%ago' => format_interval($_SERVER['REQUEST_TIME'] - $item->timestamp)));
   }
   else {
     $variables['source_date'] = format_date($item->timestamp, 'custom', variable_get('date_format_medium', 'D, m/d/Y - H:i'));
@@ -462,7 +462,7 @@ function template_preprocess_aggregator_summary_item(&$variables) {
 
   $variables['feed_url'] = check_url($item->link);
   $variables['feed_title'] = check_plain($item->title);
-  $variables['feed_age'] = t('%age old', array('%age' => format_interval(time() - $item->timestamp)));
+  $variables['feed_age'] = t('%age old', array('%age' => format_interval($_SERVER['REQUEST_TIME'] - $item->timestamp)));
 
   $variables['source_url'] = '';
   $variables['source_title'] = '';
@@ -486,7 +486,7 @@ function template_preprocess_aggregator_feed_source(&$variables) {
   $variables['source_url'] = check_url(url($feed->link, array('absolute' => TRUE)));
 
   if ($feed->checked) {
-    $variables['last_checked'] = t('@time ago', array('@time' => format_interval(time() - $feed->checked)));
+    $variables['last_checked'] = t('@time ago', array('@time' => format_interval($_SERVER['REQUEST_TIME'] - $feed->checked)));
   }
   else {
     $variables['last_checked'] = t('never');
diff --git a/modules/blogapi/blogapi.module b/modules/blogapi/blogapi.module
index 56408dbb4906956fbd7c9cda9158b848fce7f42e..e14c1e689a9c6eeaed0319364e0fd3d4f2e562a9 100644
--- a/modules/blogapi/blogapi.module
+++ b/modules/blogapi/blogapi.module
@@ -218,7 +218,7 @@ function blogapi_blogger_new_post($appkey, $blogid, $username, $password, $conte
   }
 
   if (user_access('administer nodes') && !isset($edit['date'])) {
-    $edit['date'] = format_date(time(), 'custom', 'Y-m-d H:i:s O');
+    $edit['date'] = format_date($_SERVER['REQUEST_TIME'], 'custom', 'Y-m-d H:i:s O');
   }
 
   node_invoke_nodeapi($edit, 'blogapi new');
diff --git a/modules/comment/comment.install b/modules/comment/comment.install
index 96f0e3dca2f3eee7d15ac520fea5f3ac4a2fee3a..556d225d91d660141b8a4e140d02a3930943207c 100644
--- a/modules/comment/comment.install
+++ b/modules/comment/comment.install
@@ -14,11 +14,11 @@ function comment_enable() {
  */
 function comment_update_1() {
   // Change any future last comment timestamps to current time.
-  db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE last_comment_timestamp > %d', time(), time());
+  db_query('UPDATE {node_comment_statistics} SET last_comment_timestamp = %d WHERE last_comment_timestamp > %d', $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME']);
 
   // Unstuck node indexing timestamp if needed.
   if (($last = variable_get('node_cron_last', FALSE)) !== FALSE) {
-    variable_set('node_cron_last', min(time(), $last));
+    variable_set('node_cron_last', min($_SERVER['REQUEST_TIME'], $last));
   }
 
   return array();
diff --git a/modules/comment/comment.module b/modules/comment/comment.module
index 75d7f0088cb0ae8848fc65a526125dd2832d3135..4bf15133aac1d31850ea817c4ac05c8470627876 100644
--- a/modules/comment/comment.module
+++ b/modules/comment/comment.module
@@ -378,7 +378,7 @@ function theme_comment_block() {
   $items = array();
   $number = variable_get('comment_block_count', 10);
   foreach (comment_get_recent($number) as $comment) {
-    $items[] = l($comment->subject, 'node/' . $comment->nid, array('fragment' => 'comment-' . $comment->cid)) . '<br />' . t('@time ago', array('@time' => format_interval(time() - $comment->timestamp)));
+    $items[] = l($comment->subject, 'node/' . $comment->nid, array('fragment' => 'comment-' . $comment->cid)) . '<br />' . t('@time ago', array('@time' => format_interval($_SERVER['REQUEST_TIME'] - $comment->timestamp)));
   }
 
   if ($items) {
@@ -712,7 +712,7 @@ function comment_save($edit) {
         }
 
         if (empty($edit['timestamp'])) {
-          $edit['timestamp'] = time();
+          $edit['timestamp'] = $_SERVER['REQUEST_TIME'];
         }
 
         if ($edit['uid'] === $user->uid) { // '===' Need to modify anonymous users as well.
@@ -1448,7 +1448,7 @@ function comment_form_add_preview($form, &$form_state) {
       $comment->name = variable_get('anonymous', t('Anonymous'));
     }
 
-    $comment->timestamp = !empty($edit['timestamp']) ? $edit['timestamp'] : time();
+    $comment->timestamp = !empty($edit['timestamp']) ? $edit['timestamp'] : $_SERVER['REQUEST_TIME'];
     $output .= theme('comment_view', $comment, $node);
   }
 
@@ -1490,7 +1490,7 @@ function comment_form_validate($form, &$form_state) {
     foreach (array('name', 'homepage', 'mail') as $field) {
       // Set cookie for 365 days.
       if (isset($form_state['values'][$field])) {
-        setcookie('comment_info_' . $field, $form_state['values'][$field], time() + 31536000, '/');
+        setcookie('comment_info_' . $field, $form_state['values'][$field], $_SERVER['REQUEST_TIME'] + 31536000, '/');
       }
     }
   }
diff --git a/modules/dblog/dblog.test b/modules/dblog/dblog.test
index 376e0e2be1cf88881a301a8eeb8c2b0ff4819a7a..122a55b0fdd388c3c579931696e617510fcf6225 100644
--- a/modules/dblog/dblog.test
+++ b/modules/dblog/dblog.test
@@ -102,9 +102,9 @@ class DBLogTestCase extends DrupalWebTestCase {
       'link'        => NULL,
       'user'        => $this->big_user,
       'request_uri' => $base_root . request_uri(),
-      'referer'     => referer_uri(),
+      'referer'     => $_SERVER['HTTP_REFERER'],
       'ip'          => ip_address(),
-      'timestamp'   => time(),
+      'timestamp'   => $_SERVER['REQUEST_TIME'],
       );
     $message = 'Log entry added to test the dblog row limit.';
     for ($i = 0; $i < $count; $i++) {
diff --git a/modules/filter/filter.module b/modules/filter/filter.module
index 198c828e38e9e6179aaa355b8b0e8388b72ba184..9dd7a7e3a34a2db44c8cf18a003ce4711e4033de 100644
--- a/modules/filter/filter.module
+++ b/modules/filter/filter.module
@@ -446,7 +446,7 @@ function check_markup($text, $format = FILTER_FORMAT_DEFAULT, $check = TRUE) {
 
     // Store in cache with a minimum expiration time of 1 day.
     if ($cache) {
-      cache_set($cache_id, $text, 'cache_filter', time() + (60 * 60 * 24));
+      cache_set($cache_id, $text, 'cache_filter', $_SERVER['REQUEST_TIME'] + (60 * 60 * 24));
     }
   }
   else {
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index ac245a498e795550436cbb108176c9c79603b47a..987e37dc7a2dd92b37bfe9d469002498c4f5991e 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -908,7 +908,7 @@ function template_preprocess_forum_topic_navigation(&$variables) {
  */
 function template_preprocess_forum_submitted(&$variables) {
   $variables['author'] = isset($variables['topic']->uid) ? theme('username', $variables['topic']) : '';
-  $variables['time'] = isset($variables['topic']->timestamp) ? format_interval(time() - $variables['topic']->timestamp) : '';
+  $variables['time'] = isset($variables['topic']->timestamp) ? format_interval($_SERVER['REQUEST_TIME'] - $variables['topic']->timestamp) : '';
 }
 
 function _forum_user_last_visit($nid) {
diff --git a/modules/node/node.module b/modules/node/node.module
index 70129354a206428caf130aff57d3e8bbc760b141..8b966dd7836598da5d0a10937af3c740f2a2a398 100644
--- a/modules/node/node.module
+++ b/modules/node/node.module
@@ -13,7 +13,7 @@
  * Nodes changed after this time may be marked new, updated, or read, depending
  * on their state for the current user. Defaults to 30 days ago.
  */
-define('NODE_NEW_LIMIT', time() - 30 * 24 * 60 * 60);
+define('NODE_NEW_LIMIT', $_SERVER['REQUEST_TIME'] - 30 * 24 * 60 * 60);
 
 /**
  * Node is being built before being viewed normally.
@@ -188,10 +188,10 @@ function node_tag_new($nid) {
 
   if ($user->uid) {
     if (node_last_viewed($nid)) {
-      db_query('UPDATE {history} SET timestamp = %d WHERE uid = %d AND nid = %d', time(), $user->uid, $nid);
+      db_query('UPDATE {history} SET timestamp = %d WHERE uid = %d AND nid = %d', $_SERVER['REQUEST_TIME'], $user->uid, $nid);
     }
     else {
-      @db_query('INSERT INTO {history} (uid, nid, timestamp) VALUES (%d, %d, %d)', $user->uid, $nid, time());
+      @db_query('INSERT INTO {history} (uid, nid, timestamp) VALUES (%d, %d, %d)', $user->uid, $nid, $_SERVER['REQUEST_TIME']);
     }
   }
 }
@@ -880,7 +880,7 @@ function node_submit($node) {
       $node->uid = 0;
     }
   }
-  $node->created = !empty($node->date) ? strtotime($node->date) : time();
+  $node->created = !empty($node->date) ? strtotime($node->date) : $_SERVER['REQUEST_TIME'];
   $node->validated = TRUE;
 
   return $node;
@@ -932,12 +932,12 @@ function node_save(&$node) {
 
   // Set some required fields:
   if (empty($node->created)) {
-    $node->created = time();
+    $node->created = $_SERVER['REQUEST_TIME'];
   }
   // The changed timestamp is always updated for bookkeeping purposes (revisions, searching, ...)
-  $node->changed = time();
+  $node->changed = $_SERVER['REQUEST_TIME'];
 
-  $node->timestamp = time();
+  $node->timestamp = $_SERVER['REQUEST_TIME'];
   $node->format = isset($node->format) ? $node->format : FILTER_FORMAT_DEFAULT;
   $update_node = TRUE;
 
@@ -1221,7 +1221,7 @@ function node_search($op = 'search', $keys = NULL) {
       return t('Content');
 
     case 'reset':
-      db_query("UPDATE {search_dataset} SET reindex = %d WHERE type = 'node'", time());
+      db_query("UPDATE {search_dataset} SET reindex = %d WHERE type = 'node'", $_SERVER['REQUEST_TIME']);
       return;
 
     case 'status':
diff --git a/modules/node/node.pages.inc b/modules/node/node.pages.inc
index 7d087fe95e36c839336b952c9f6f11caae62ba71..74227ce4d832ae276ca5bf93bc41d917ac7da183 100644
--- a/modules/node/node.pages.inc
+++ b/modules/node/node.pages.inc
@@ -80,7 +80,7 @@ function node_object_prepare(&$node) {
     }
     global $user;
     $node->uid = $user->uid;
-    $node->created = time();
+    $node->created = $_SERVER['REQUEST_TIME'];
   }
   else {
     $node->date = format_date($node->created, 'custom', 'Y-m-d H:i:s O');
@@ -361,7 +361,7 @@ function node_preview($node) {
       $node->picture = $user->picture;
     }
 
-    $node->changed = time();
+    $node->changed = $_SERVER['REQUEST_TIME'];
 
     // Extract a teaser, if it hasn't been set (e.g. by a module-provided
     // 'teaser' form item).
diff --git a/modules/openid/openid.module b/modules/openid/openid.module
index a62a3e0f4acc96fa9796e11017d41d99029a94ae..c44d95a1d3213f287d9af332562ea09cf0a30fce 100644
--- a/modules/openid/openid.module
+++ b/modules/openid/openid.module
@@ -333,7 +333,7 @@ function openid_association($op_endpoint) {
   module_load_include('inc', 'openid');
 
   // Remove Old Associations:
-  db_query("DELETE FROM {openid_association} WHERE created + expires_in < %d", time());
+  db_query("DELETE FROM {openid_association} WHERE created + expires_in < %d", $_SERVER['REQUEST_TIME']);
 
   // Check to see if we have an association for this IdP already
   $assoc_handle = db_result(db_query("SELECT assoc_handle FROM {openid_association} WHERE idp_endpoint_uri = '%s'", $op_endpoint));
@@ -367,7 +367,7 @@ function openid_association($op_endpoint) {
       $assoc_response['mac_key'] = base64_encode(_openid_dh_xorsecret($shared, $enc_mac_key));
     }
     db_query("INSERT INTO {openid_association} (idp_endpoint_uri, session_type, assoc_handle, assoc_type, expires_in, mac_key, created) VALUES('%s', '%s', '%s', '%s', %d, '%s', %d)",
-             $op_endpoint, $assoc_response['session_type'], $assoc_response['assoc_handle'], $assoc_response['assoc_type'], $assoc_response['expires_in'], $assoc_response['mac_key'], time());
+             $op_endpoint, $assoc_response['session_type'], $assoc_response['assoc_handle'], $assoc_response['assoc_type'], $assoc_response['expires_in'], $assoc_response['mac_key'], $_SERVER['REQUEST_TIME']);
 
     $assoc_handle = $assoc_response['assoc_handle'];
   }
diff --git a/modules/poll/poll.module b/modules/poll/poll.module
index b0368d207d64a15228de005f21a54f43ce260af7..4c4962a9730f93eb607efe35ea24f7eca9f45797 100644
--- a/modules/poll/poll.module
+++ b/modules/poll/poll.module
@@ -161,7 +161,7 @@ function poll_block($op = 'list', $delta = '') {
  * Closes polls that have exceeded their allowed runtime.
  */
 function poll_cron() {
-  $result = db_query('SELECT p.nid FROM {poll} p INNER JOIN {node} n ON p.nid = n.nid WHERE (n.created + p.runtime) < ' . time() . ' AND p.active = 1 AND p.runtime != 0');
+  $result = db_query('SELECT p.nid FROM {poll} p INNER JOIN {node} n ON p.nid = n.nid WHERE (n.created + p.runtime) < ' . $_SERVER['REQUEST_TIME'] . ' AND p.active = 1 AND p.runtime != 0');
   while ($poll = db_fetch_object($result)) {
     db_query("UPDATE {poll} SET active = 0 WHERE nid = %d", $poll->nid);
   }
diff --git a/modules/search/search.module b/modules/search/search.module
index 92b7ee2c6fc5dc0ea4a2d8757cc5f51da59d05ee..152fb45eb98458d0b2bd3e285a64488f6cbddabe 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -622,7 +622,7 @@ function search_index($sid, $type, $text) {
  *   The nid of the node that needs reindexing.
  */
 function search_touch_node($nid) {
-  db_query("UPDATE {search_dataset} SET reindex = %d WHERE sid = %d AND type = 'node'", time(), $nid);
+  db_query("UPDATE {search_dataset} SET reindex = %d WHERE sid = %d AND type = 'node'", $_SERVER['REQUEST_TIME'], $nid);
 }
 
 /**
diff --git a/modules/search/search.test b/modules/search/search.test
index 647e20cd9ea00f773c729d7939d289dea3d3510b..45ff94c8a163f99fc900cd0dd30aceb9181ace6a 100644
--- a/modules/search/search.test
+++ b/modules/search/search.test
@@ -236,7 +236,7 @@ class SearchRankingTestCase extends DrupalWebTestCase {
               $settings['body'] .= " really rocks";
               break;
             case 'recent':
-              $settings['created'] = time() + 3600;
+              $settings['created'] = $_SERVER['REQUEST_TIME'] + 3600;
               break;
             case 'comments':
               $settings['comment'] = 2;
diff --git a/modules/simpletest/drupal_web_test_case.php b/modules/simpletest/drupal_web_test_case.php
index b5394bfc2848b751bf0b7510508bdf589d3731ec..d06b5731ce9c912d75fc687e085dbe129a86d12e 100644
--- a/modules/simpletest/drupal_web_test_case.php
+++ b/modules/simpletest/drupal_web_test_case.php
@@ -331,7 +331,7 @@ function drupalCreateNode($settings = array()) {
       'body'      => $this->randomName(32),
       'title'     => $this->randomName(8),
       'comment'   => 2,
-      'changed'   => time(),
+      'changed'   => $_SERVER['REQUEST_TIME'],
       'format'    => FILTER_FORMAT_DEFAULT,
       'moderate'  => 0,
       'promote'   => 0,
diff --git a/modules/simpletest/tests/session.test b/modules/simpletest/tests/session.test
index 2e564e0bf3de710f7cc4cc633b76fea4cca8a258..b4835832dd08e2d7fe89d906ac69c3925c6f29c7 100644
--- a/modules/simpletest/tests/session.test
+++ b/modules/simpletest/tests/session.test
@@ -113,7 +113,7 @@ class SessionTestCase extends DrupalWebTestCase {
     $this->assertEqual($authenticated, $this->session_count_authenticated, t('Correctly counted @count authenticated sessions.', array('@count' => $authenticated)), t('Session'));
 
     // Should return 0 sessions from 1 second from now.
-    $this->assertEqual(sess_count(time() + 1), 0, t('Correctly returned 0 sessions newer than the current time.'), t('Session'));
+    $this->assertEqual(sess_count($_SERVER['REQUEST_TIME'] + 1), 0, t('Correctly returned 0 sessions newer than the current time.'), t('Session'));
 
   }
 
diff --git a/modules/simpletest/tests/xmlrpc.test b/modules/simpletest/tests/xmlrpc.test
index 799f690813ca2092f0f55e70e051db4a4571d206..df44c0ac1d484cbeb4f6089b3321a547cb056820 100644
--- a/modules/simpletest/tests/xmlrpc.test
+++ b/modules/simpletest/tests/xmlrpc.test
@@ -66,7 +66,7 @@ class XMLRPCValidator1IncTestCase extends DrupalWebTestCase {
     $bool_5    = (($int_5 % 2) == 0);
     $string_5  = $this->randomName();
     $double_5  = (double)(mt_rand(-1000,1000) / 100);
-    $time_5    = time();
+    $time_5    = $_SERVER['REQUEST_TIME'];
     $base64_5  = $this->randomName(100);
     $l_res_5 = xmlrpc_test_manyTypesTest($int_5, $bool_5, $string_5, $double_5, xmlrpc_date($time_5), $base64_5);
     $l_res_5[5] = $l_res_5[5]->data; /* override warpping */
diff --git a/modules/statistics/statistics.admin.inc b/modules/statistics/statistics.admin.inc
index 891abe81e708b3c8f3f2759c531079f7a89b73c6..f10d9ca7fc44b4384095e5ba93a5d7fc5d418877 100644
--- a/modules/statistics/statistics.admin.inc
+++ b/modules/statistics/statistics.admin.inc
@@ -122,7 +122,7 @@ function statistics_top_referrers() {
 
   $rows = array();
   while ($referrer = db_fetch_object($result)) {
-    $rows[] = array($referrer->hits, _statistics_link($referrer->url), t('@time ago', array('@time' => format_interval(time() - $referrer->last))));
+    $rows[] = array($referrer->hits, _statistics_link($referrer->url), t('@time ago', array('@time' => format_interval($_SERVER['REQUEST_TIME'] - $referrer->last))));
   }
 
   if (empty($rows)) {
diff --git a/modules/statistics/statistics.module b/modules/statistics/statistics.module
index 4242aec5bfbc1dbc37986ca03a668ea42a963f39..32504dfdebf3b71fc1cb977e551e0bcecbe3216d 100644
--- a/modules/statistics/statistics.module
+++ b/modules/statistics/statistics.module
@@ -55,7 +55,7 @@ function statistics_exit() {
         'daycount' => 1,
         'totalcount' => 1,
         'nid' => arg(1),
-        'timestamp' => time(),
+        'timestamp' => $_SERVER['REQUEST_TIME'],
       );
       db_merge('node_counter')
         ->fields($fields)
@@ -69,12 +69,12 @@ function statistics_exit() {
     db_insert('accesslog')->fields(array(
       'title' => strip_tags(drupal_get_title()),
       'path' => $_GET['q'], 
-      'url' => referer_uri(), 
+      'url' => $_SERVER['HTTP_REFERER'], 
       'hostname' => ip_address(), 
       'uid' => $user->uid, 
       'sid' => session_id(), 
       'timer' => timer_read('page'), 
-      'timestamp' => time(),
+      'timestamp' => $_SERVER['REQUEST_TIME'],
     ))->execute();
   }
 }
@@ -188,14 +188,14 @@ function statistics_user($op, &$edit, &$user) {
 function statistics_cron() {
   $statistics_timestamp = variable_get('statistics_day_timestamp', '');
 
-  if ((time() - $statistics_timestamp) >= 86400) {
+  if (($_SERVER['REQUEST_TIME'] - $statistics_timestamp) >= 86400) {
     // Reset day counts.
     db_query('UPDATE {node_counter} SET daycount = 0');
-    variable_set('statistics_day_timestamp', time());
+    variable_set('statistics_day_timestamp', $_SERVER['REQUEST_TIME']);
   }
 
   // Clean up expired access logs.
-  db_query('DELETE FROM {accesslog} WHERE timestamp < %d', time() - variable_get('statistics_flush_accesslog_timer', 259200));
+  db_query('DELETE FROM {accesslog} WHERE timestamp < %d', $_SERVER['REQUEST_TIME'] - variable_get('statistics_flush_accesslog_timer', 259200));
 }
 
 /**
diff --git a/modules/statistics/statistics.test b/modules/statistics/statistics.test
index 5375d1f25d3028f882dbafa07279e574753c35b1..549326411e037b308a198fccc21e88fc3852f2aa 100644
--- a/modules/statistics/statistics.test
+++ b/modules/statistics/statistics.test
@@ -23,7 +23,7 @@ class StatisticsBlockVisitorsTestCase extends DrupalWebTestCase {
     $this->blocking_user = $this->drupalCreateUser(array('block IP addresses', 'access statistics'));
 
     // Insert dummy access by anonymous user into access log.
-    db_query("INSERT INTO {accesslog} (title, path, url, hostname, uid, sid, timer, timestamp) values('%s', '%s', '%s', '%s', %d, '%s', %d, %d)", 'test', 'node/1', 'http://example.com', '192.168.1.1', '0', '10', '10', time());
+    db_query("INSERT INTO {accesslog} (title, path, url, hostname, uid, sid, timer, timestamp) values('%s', '%s', '%s', '%s', %d, '%s', %d, %d)", 'test', 'node/1', 'http://example.com', '192.168.1.1', '0', '10', '10', $_SERVER['REQUEST_TIME']);
   }
 
   /**
diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc
index fb58f660e1a119bdefb1bf738068ca6f012ebe74..c3f7e05b204366b1929ce7b12812d48625564315 100644
--- a/modules/system/system.admin.inc
+++ b/modules/system/system.admin.inc
@@ -1557,13 +1557,13 @@ function system_date_time_settings() {
 
   // Date settings: construct choices for user
   foreach ($date_short as $f) {
-    $date_short_choices[$f] = format_date(time(), 'custom', $f);
+    $date_short_choices[$f] = format_date($_SERVER['REQUEST_TIME'], 'custom', $f);
   }
   foreach ($date_medium as $f) {
-    $date_medium_choices[$f] = format_date(time(), 'custom', $f);
+    $date_medium_choices[$f] = format_date($_SERVER['REQUEST_TIME'], 'custom', $f);
   }
   foreach ($date_long as $f) {
-    $date_long_choices[$f] = format_date(time(), 'custom', $f);
+    $date_long_choices[$f] = format_date($_SERVER['REQUEST_TIME'], 'custom', $f);
   }
 
   $date_long_choices['custom'] = $date_medium_choices['custom'] = $date_short_choices['custom'] = t('Custom format');
@@ -1622,7 +1622,7 @@ function system_date_time_settings() {
     '#title' => t('Custom short date format'),
     '#attributes' => array('class' => 'custom-format'),
     '#default_value' => $default_short_custom,
-    '#description' => t('A user-defined short date format. See the <a href="@url">PHP manual</a> for available options. This format is currently set to display as <span>%date</span>.', array('@url' => 'http://php.net/manual/function.date.php', '%date' => format_date(time(), 'custom', $default_short_custom))),
+    '#description' => t('A user-defined short date format. See the <a href="@url">PHP manual</a> for available options. This format is currently set to display as <span>%date</span>.', array('@url' => 'http://php.net/manual/function.date.php', '%date' => format_date($_SERVER['REQUEST_TIME'], 'custom', $default_short_custom))),
   );
 
   $date_format_medium = variable_get('date_format_medium', $date_medium[1]);
@@ -1645,7 +1645,7 @@ function system_date_time_settings() {
     '#title' => t('Custom medium date format'),
     '#attributes' => array('class' => 'custom-format'),
     '#default_value' => $default_medium_custom,
-    '#description' => t('A user-defined medium date format. See the <a href="@url">PHP manual</a> for available options. This format is currently set to display as <span>%date</span>.', array('@url' => 'http://php.net/manual/function.date.php', '%date' => format_date(time(), 'custom', $default_medium_custom))),
+    '#description' => t('A user-defined medium date format. See the <a href="@url">PHP manual</a> for available options. This format is currently set to display as <span>%date</span>.', array('@url' => 'http://php.net/manual/function.date.php', '%date' => format_date($_SERVER['REQUEST_TIME'], 'custom', $default_medium_custom))),
   );
 
   $date_format_long = variable_get('date_format_long', $date_long[0]);
@@ -1668,7 +1668,7 @@ function system_date_time_settings() {
     '#title' => t('Custom long date format'),
     '#attributes' => array('class' => 'custom-format'),
     '#default_value' => $default_long_custom,
-    '#description' => t('A user-defined long date format. See the <a href="@url">PHP manual</a> for available options. This format is currently set to display as <span>%date</span>.', array('@url' => 'http://php.net/manual/function.date.php', '%date' => format_date(time(), 'custom', $default_long_custom))),
+    '#description' => t('A user-defined long date format. See the <a href="@url">PHP manual</a> for available options. This format is currently set to display as <span>%date</span>.', array('@url' => 'http://php.net/manual/function.date.php', '%date' => format_date($_SERVER['REQUEST_TIME'], 'custom', $default_long_custom))),
   );
 
   $form = system_settings_form($form);
@@ -1697,7 +1697,7 @@ function system_date_time_settings_submit($form, &$form_state) {
  * Return the date for a given format string via Ajax.
  */
 function system_date_time_lookup() {
-  $result = format_date(time(), 'custom', $_GET['format']);
+  $result = format_date($_SERVER['REQUEST_TIME'], 'custom', $_GET['format']);
   echo drupal_to_js($result);
   exit;
 }
diff --git a/modules/system/system.install b/modules/system/system.install
index e4d7d875653e460273d24b5b4f26178c57fdf47a..e133d55ec077bf367d09052b9544f8bdf12a8ebd 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -143,10 +143,10 @@ function system_requirements($phase) {
 
     // Determine severity based on time since cron last ran.
     $severity = REQUIREMENT_OK;
-    if (time() - $cron_last > $threshold_error) {
+    if ($_SERVER['REQUEST_TIME'] - $cron_last > $threshold_error) {
       $severity = REQUIREMENT_ERROR;
     }
-    else if ($never_run || (time() - $cron_last > $threshold_warning)) {
+    else if ($never_run || ($_SERVER['REQUEST_TIME'] - $cron_last > $threshold_warning)) {
       $severity = REQUIREMENT_WARNING;
     }
 
@@ -163,7 +163,7 @@ function system_requirements($phase) {
       $description = $t('Cron has not run.') . ' ' . $help;
     }
     else {
-      $summary = $t('Last run !time ago', array('!time' => format_interval(time() - $cron_last)));
+      $summary = $t('Last run !time ago', array('!time' => format_interval($_SERVER['REQUEST_TIME'] - $cron_last)));
       $description = '';
       if ($severity != REQUIREMENT_OK) {
         $description = $t('Cron has not run recently.') . ' ' . $help;
@@ -371,7 +371,7 @@ function system_install() {
   // presumed to be a serialized array. Install will change uid 1 immediately
   // anyways. So we insert the superuser here, the uid is 2 here for now, but
   // very soon it will be changed to 1.
-  db_query("INSERT INTO {users} (name, mail, created, data) VALUES('%s', '%s', %d, '%s')", 'placeholder-for-uid-1', 'placeholder-for-uid-1', time(), serialize(array()));
+  db_query("INSERT INTO {users} (name, mail, created, data) VALUES('%s', '%s', %d, '%s')", 'placeholder-for-uid-1', 'placeholder-for-uid-1', $_SERVER['REQUEST_TIME'], serialize(array()));
   // This sets the above two users uid 0 (anonymous). We avoid an explicit 0
   // otherwise MySQL might insert the next auto_increment value.
   db_query("UPDATE {users} SET uid = uid - uid WHERE name = '%s'", '');
diff --git a/modules/system/system.module b/modules/system/system.module
index 005d21a890a874097b9150726c7396d52c6a30d3..9b9791f0faccd9b5cfcb89a1da9e921039f6f4d7 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -1391,12 +1391,12 @@ function system_get_module_admin_tasks($module) {
  */
 function system_cron() {
   // Cleanup the flood.
-  db_query('DELETE FROM {flood} WHERE timestamp < %d', time() - 3600);
+  db_query('DELETE FROM {flood} WHERE timestamp < %d', $_SERVER['REQUEST_TIME'] - 3600);
   // Cleanup the batch table.
-  db_query('DELETE FROM {batch} WHERE timestamp < %d', time() - 864000);
+  db_query('DELETE FROM {batch} WHERE timestamp < %d', $_SERVER['REQUEST_TIME'] - 864000);
 
   // Remove temporary files that are older than DRUPAL_MAXIMUM_TEMP_FILE_AGE.
-  $result = db_query('SELECT * FROM {files} WHERE status = %d and timestamp < %d', FILE_STATUS_TEMPORARY, time() - DRUPAL_MAXIMUM_TEMP_FILE_AGE);
+  $result = db_query('SELECT * FROM {files} WHERE status = %d and timestamp < %d', FILE_STATUS_TEMPORARY, $_SERVER['REQUEST_TIME'] - DRUPAL_MAXIMUM_TEMP_FILE_AGE);
   while ($file = db_fetch_object($result)) {
     if (file_exists($file->filepath)) {
       // If files that exist cannot be deleted, continue so the database remains
@@ -2027,7 +2027,7 @@ function system_block_ip_action() {
  * Generate an array of time zones and their local time&date.
  */
 function _system_zonelist() {
-  $timestamp = time();
+  $timestamp = $_SERVER['REQUEST_TIME'];
   $zonelist = array(-11, -10, -9.5, -9, -8, -7, -6, -5, -4, -3.5, -3, -2, -1, 0, 1, 2, 3, 3.5, 4, 5, 5.5, 5.75, 6, 6.5, 7, 8, 9, 9.5, 10, 10.5, 11, 11.5, 12, 12.75, 13, 14);
   $zones = array();
   foreach ($zonelist as $offset) {
diff --git a/modules/tracker/tracker.pages.inc b/modules/tracker/tracker.pages.inc
index 8b596497ec5d373e7a2ef83cfcf4ec72c8ed6608..e66bca68d9f63edaa922f83127f6a0c7f735981e 100644
--- a/modules/tracker/tracker.pages.inc
+++ b/modules/tracker/tracker.pages.inc
@@ -54,7 +54,7 @@ function tracker_page($account = NULL, $set_title = FALSE) {
       l($node->title, "node/$node->nid") . ' ' . theme('mark', node_mark($node->nid, $node->changed)),
       theme('username', $node),
       array('class' => 'replies', 'data' => $comments),
-      t('!time ago', array('!time' => format_interval(time() - $node->last_updated)))
+      t('!time ago', array('!time' => format_interval($_SERVER['REQUEST_TIME'] - $node->last_updated)))
     );
   }
 
diff --git a/modules/update/update.compare.inc b/modules/update/update.compare.inc
index e10479cba4facab5a698d5e3c962c2ef9fe03346..efca6e92899a2615d046b3d498cb445497013ebb 100644
--- a/modules/update/update.compare.inc
+++ b/modules/update/update.compare.inc
@@ -30,7 +30,7 @@ function update_get_projects() {
       _update_process_info_list($projects, module_rebuild_cache(), 'module');
       _update_process_info_list($projects, system_theme_data(), 'theme');
       // Set the projects array into the cache table.
-      cache_set('update_project_projects', $projects, 'cache_update', time() + 3600);
+      cache_set('update_project_projects', $projects, 'cache_update', $_SERVER['REQUEST_TIME'] + 3600);
     }
   }
   return $projects;
@@ -551,7 +551,7 @@ function update_calculate_project_data($available) {
   drupal_alter('update_status', $projects);
 
   // Set the projects array into the cache table.
-  cache_set('update_project_data', $projects, 'cache_update', time() + 3600);
+  cache_set('update_project_data', $projects, 'cache_update', $_SERVER['REQUEST_TIME'] + 3600);
   return $projects;
 }
 
@@ -588,7 +588,7 @@ function update_project_cache($cid) {
   }
   else {
     $cache = cache_get($cid, 'cache_update');
-    if (!empty($cache->data) && $cache->expire > time()) {
+    if (!empty($cache->data) && $cache->expire > $_SERVER['REQUEST_TIME']) {
       $projects = $cache->data;
     }
   }
diff --git a/modules/update/update.fetch.inc b/modules/update/update.fetch.inc
index 17cf06f4894829839e64295d7e2627e3135ed0ef..d23370296a1d3157498668d6c5ecd8538fe3dd56 100644
--- a/modules/update/update.fetch.inc
+++ b/modules/update/update.fetch.inc
@@ -52,8 +52,8 @@ function _update_refresh() {
   }
   if (!empty($available) && is_array($available)) {
     $frequency = variable_get('update_check_frequency', 1);
-    cache_set('update_info', $available, 'cache_update', time() + (60 * 60 * 24 * $frequency));
-    variable_set('update_last_check', time());
+    cache_set('update_info', $available, 'cache_update', $_SERVER['REQUEST_TIME'] + (60 * 60 * 24 * $frequency));
+    variable_set('update_last_check', $_SERVER['REQUEST_TIME']);
     watchdog('update', 'Fetched information about all available new releases and updates.', array(), WATCHDOG_NOTICE, l(t('view'), 'admin/reports/updates'));
   }
   else {
diff --git a/modules/update/update.module b/modules/update/update.module
index 8a08f986c73b11785799afc5d99eb706cc747a85..15ca24d25261dfacc6b02888e42a98b1fffba47d 100644
--- a/modules/update/update.module
+++ b/modules/update/update.module
@@ -276,7 +276,7 @@ function _update_requirement_check($project, $type) {
 function update_cron() {
   $frequency = variable_get('update_check_frequency', 1);
   $interval = 60 * 60 * 24 * $frequency;
-  if (time() - variable_get('update_last_check', 0) > $interval) {
+  if ($_SERVER['REQUEST_TIME'] - variable_get('update_last_check', 0) > $interval) {
     update_refresh();
     _update_cron_notify();
   }
@@ -342,7 +342,7 @@ function update_get_available($refresh = FALSE) {
     }
   }
   if (!$needs_refresh && ($cache = cache_get('update_info', 'cache_update'))
-       && $cache->expire > time()) {
+       && $cache->expire > $_SERVER['REQUEST_TIME']) {
     $available = $cache->data;
   }
   elseif ($needs_refresh || $refresh) {
diff --git a/modules/update/update.report.inc b/modules/update/update.report.inc
index 1523020610e387438faf744a918acea7446a0cff..193284f1c62c5cbf758fb301d78a2c88b9c45bb4 100644
--- a/modules/update/update.report.inc
+++ b/modules/update/update.report.inc
@@ -27,7 +27,7 @@ function update_status() {
  */
 function theme_update_report($data) {
   $last = variable_get('update_last_check', 0);
-  $output = '<div class="update checked">' . ($last ? t('Last checked: @time ago', array('@time' => format_interval(time() - $last))) : t('Last checked: never'));
+  $output = '<div class="update checked">' . ($last ? t('Last checked: @time ago', array('@time' => format_interval($_SERVER['REQUEST_TIME'] - $last))) : t('Last checked: never'));
   $output .= ' <span class="check-manually">(' . l(t('Check manually'), 'admin/reports/updates/check') . ')</span>';
   $output .= "</div>\n";
 
diff --git a/modules/user/user.admin.inc b/modules/user/user.admin.inc
index 1760c6e6a176a691e09d32b7a90c755c0ca89d52..fa188324d99779e4f14f16498d8d2c749b654708 100644
--- a/modules/user/user.admin.inc
+++ b/modules/user/user.admin.inc
@@ -180,8 +180,8 @@ function user_admin_account() {
     }
     asort($users_roles);
     $form['roles'][$account->uid][0] = array('#markup' => theme('item_list', $users_roles));
-    $form['member_for'][$account->uid] = array('#markup' => format_interval(time() - $account->created));
-    $form['last_access'][$account->uid] =  array('#markup' => $account->access ? t('@time ago', array('@time' => format_interval(time() - $account->access))) : t('never'));
+    $form['member_for'][$account->uid] = array('#markup' => format_interval($_SERVER['REQUEST_TIME'] - $account->created));
+    $form['last_access'][$account->uid] =  array('#markup' => $account->access ? t('@time ago', array('@time' => format_interval($_SERVER['REQUEST_TIME'] - $account->access))) : t('never'));
     $form['operations'][$account->uid] = array('#markup' => l(t('edit'), "user/$account->uid/edit", array('query' => $destination)));
   }
   $form['accounts'] = array(
diff --git a/modules/user/user.module b/modules/user/user.module
index 5f8b629bd618d19189dd63bbdc0b1489bd1f8e61..5d920b8e3f4756ea80629587677d023706e45ffa 100644
--- a/modules/user/user.module
+++ b/modules/user/user.module
@@ -240,7 +240,7 @@ function user_save($account, $edit = array(), $category = 'account') {
     // Consider users edited by an administrator as logged in, if they haven't
     // already, so anonymous users can view the profile (if allowed).
     if (empty($edit['access']) && empty($account->access) && user_access('administer users')) {
-      $edit['access'] = time();
+      $edit['access'] = $_SERVER['REQUEST_TIME'];
     }
     foreach ($edit as $key => $value) {
       // Fields that don't pertain to the users or user_roles
@@ -302,12 +302,12 @@ function user_save($account, $edit = array(), $category = 'account') {
   else {
     // Allow 'created' to be set by the caller.
     if (!isset($edit['created'])) {
-      $edit['created'] = time();
+      $edit['created'] = $_SERVER['REQUEST_TIME'];
     }
     // Consider users created by an administrator as already logged in, so
     // anonymous users can view the profile (if allowed).
     if (empty($edit['access']) && user_access('administer users')) {
-      $edit['access'] = time();
+      $edit['access'] = $_SERVER['REQUEST_TIME'];
     }
 
     $success = drupal_write_record('users', $edit);
@@ -653,7 +653,7 @@ function user_user($type, &$edit, &$account, $category = NULL) {
     $account->content['summary']['member_for'] =  array(
       '#type' => 'user_profile_item',
       '#title' => t('Member for'),
-      '#markup' => format_interval(time() - $account->created),
+      '#markup' => format_interval($_SERVER['REQUEST_TIME'] - $account->created),
     );
   }
   if ($type == 'form' && $category == 'account') {
@@ -788,7 +788,7 @@ function user_block($op = 'list', $delta = '', $edit = array()) {
       case 'online':
         if (user_access('access content')) {
           // Count users active within the defined period.
-          $interval = time() - variable_get('user_block_seconds_online', 900);
+          $interval = $_SERVER['REQUEST_TIME'] - variable_get('user_block_seconds_online', 900);
 
           // Perform database queries to gather online user lists.  We use s.timestamp
           // rather than u.access because it is much faster.
@@ -1341,7 +1341,7 @@ function user_authenticate_finalize(&$edit) {
   watchdog('user', 'Session opened for %name.', array('%name' => $user->name));
   // Update the user table timestamp noting user has logged in.
   // This is also used to invalidate one-time login links.
-  $user->login = time();
+  $user->login = $_SERVER['REQUEST_TIME'];
   db_query("UPDATE {users} SET login = %d WHERE uid = %d", $user->login, $user->uid);
   user_module_invoke('login', $edit, $user);
   sess_regenerate();
@@ -1380,7 +1380,7 @@ function user_external_login_register($name, $module) {
       'pass' => user_password(),
       'init' => $name,
       'status' => 1,
-      'access' => time()
+      'access' => $_SERVER['REQUEST_TIME']
     );
     $account = user_save('', $userinfo);
     // Terminate if an error occured during user_save().
@@ -1395,7 +1395,7 @@ function user_external_login_register($name, $module) {
 }
 
 function user_pass_reset_url($account) {
-  $timestamp = time();
+  $timestamp = $_SERVER['REQUEST_TIME'];
   return url("user/reset/$account->uid/$timestamp/" . user_pass_rehash($account->pass, $timestamp, $account->login), array('absolute' => TRUE));
 }
 
@@ -2040,7 +2040,7 @@ function user_mail_tokens($account, $language) {
     '!uri' => $base_url,
     '!uri_brief' => preg_replace('!^https?://!', '', $base_url),
     '!mailto' => $account->mail,
-    '!date' => format_date(time(), 'medium', '', NULL, $language->language),
+    '!date' => format_date($_SERVER['REQUEST_TIME'], 'medium', '', NULL, $language->language),
     '!login_uri' => url('user', array('absolute' => TRUE, 'language' => $language)),
     '!edit_uri' => url('user/' . $account->uid . '/edit', array('absolute' => TRUE, 'language' => $language)),
   );
diff --git a/modules/user/user.pages.inc b/modules/user/user.pages.inc
index df0c37fcc59777a7096d81ac0aced39d843e6d6f..be757643b4c7540bc91312bfb5eef58bb32f986a 100644
--- a/modules/user/user.pages.inc
+++ b/modules/user/user.pages.inc
@@ -84,7 +84,7 @@ function user_pass_reset(&$form_state, $uid, $timestamp, $hashed_pass, $action =
   else {
     // Time out, in seconds, until login URL expires. 24 hours = 86400 seconds.
     $timeout = 86400;
-    $current = time();
+    $current = $_SERVER['REQUEST_TIME'];
     // Some redundant checks for extra security ?
     if ($timestamp < $current && $account = user_load(array('uid' => $uid, 'status' => 1)) ) {
       // No time out for first time login.
diff --git a/modules/user/user.test b/modules/user/user.test
index 17a187a99b0aa67ca5fc7d07c3255cc799726ab0..57a6a570bfbd44a4735ff7595bde8641a6c8bbf7 100644
--- a/modules/user/user.test
+++ b/modules/user/user.test
@@ -43,7 +43,7 @@ class UserRegistrationTestCase extends DrupalWebTestCase {
     $this->assertEqual($user->mail, $mail, t('E-mail address matches.'));
     $this->assertEqual($user->theme, '', t('Correct theme field.'));
     $this->assertEqual($user->signature, '', t('Correct signature field.'));
-    $this->assertTrue(($user->created > time() - 20 ), t('Correct creation time.'));
+    $this->assertTrue(($user->created > $_SERVER['REQUEST_TIME'] - 20 ), t('Correct creation time.'));
     $this->assertEqual($user->status, variable_get('user_register', 1) == 1 ? 1 : 0, t('Correct status field.'));
     $this->assertEqual($user->timezone, variable_get('date_default_timezone', NULL), t('Correct timezone field.'));
     $this->assertEqual($user->language, '', t('Correct language field.'));
diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh
index 15a70371449ba9d9326518d06c912fdf41847dcb..af57336db63d8cc8e2a0eaeac5f245e61f372c18 100755
--- a/scripts/run-tests.sh
+++ b/scripts/run-tests.sh
@@ -423,7 +423,7 @@ function simpletest_script_reporter_init() {
     echo "\n";
   }
 
-  echo "Test run started: " . format_date(time(), 'long') . "\n";
+  echo "Test run started: " . format_date($_SERVER['REQUEST_TIME'], 'long') . "\n";
   echo "\n";
 
   echo "Test summary:\n";
@@ -438,7 +438,7 @@ function simpletest_script_reporter_display_results() {
   global $args, $test_id, $results_map;
 
   echo "\n";
-  echo "Test run ended: " . format_date(time(), 'long') . "\n";
+  echo "Test run ended: " . format_date($_SERVER['REQUEST_TIME'], 'long') . "\n";
   echo "\n";
 
   if ($args['verbose']) {