=== modified file 'includes/bootstrap.inc'
--- includes/bootstrap.inc	2009-11-19 04:00:47 +0000
+++ includes/bootstrap.inc	2009-11-20 01:37:41 +0000
@@ -799,6 +799,15 @@ function drupal_page_get_cache($check_on
 
   if (drupal_page_is_cacheable()) {
     $cache = cache_get($base_root . request_uri(), 'cache_page');
+
+    if (!empty($cache->cron)) {
+      $cron_last = variable_get('cron_last', NULL);
+      $cron_threshold = variable_get('cron_safe_threshold', DRUPAL_CRON_DEFAULT_THRESHOLD);
+      if (!isset($cron_last) || (REQUEST_TIME - $cron_last > $cron_threshold)) {
+        $cache = FALSE;
+      }
+    }
+
     if ($cache !== FALSE) {
       $cache_hit = TRUE;
     }

=== modified file 'includes/common.inc'
--- includes/common.inc	2009-11-16 20:31:27 +0000
+++ includes/common.inc	2009-11-20 01:34:21 +0000
@@ -4518,6 +4518,7 @@ function drupal_page_set_cache() {
       'expire' => CACHE_TEMPORARY,
       'created' => REQUEST_TIME,
       'headers' => array(),
+      'cron' => FALSE,
     );
 
     // Restore preferred header names based on the lower-case names returned
@@ -4525,6 +4526,9 @@ function drupal_page_set_cache() {
     $header_names = _drupal_set_preferred_header_name();
     foreach (drupal_get_http_header() as $name_lower => $value) {
       $cache->headers[$header_names[$name_lower]] = $value;
+      if ($name_lower == 'x-drupal-cron') {
+        $cache->cron = TRUE;
+      }
     }
 
     if ($cache->data) {

=== modified file 'modules/system/system.module'
--- modules/system/system.module	2009-11-19 01:24:44 +0000
+++ modules/system/system.module	2009-11-20 01:33:11 +0000
@@ -3076,10 +3076,9 @@ function system_page_build(&$page) {
  * @see system_run_cron_image_access()
  */
 function system_run_cron_image() {
-  drupal_page_is_cacheable(FALSE);
-
   // Output a transparent 1x1 image to the browser; required for clients not
   // supporting JavaScript.
+  drupal_add_http_header('X-Drupal-Cron', 'Y');
   drupal_add_http_header('Content-Type', 'image/gif');
   echo "\x47\x49\x46\x38\x39\x61\x1\x0\x1\x0\x80\xff\x0\xc0\xc0\xc0\x0\x0\x0\x21\xf9\x4\x1\x0\x0\x0\x0\x2c\x0\x0\x0\x0\x1\x0\x1\x0\x0\x2\x2\x44\x1\x0\x3b";
 

