=== modified file 'includes/common.inc'
--- includes/common.inc	2010-08-05 20:33:32 +0000
+++ includes/common.inc	2010-08-14 08:38:21 +0000
@@ -5280,6 +5280,14 @@ function drupal_render_cache_set(&$marku
   $bin = isset($elements['#cache']['bin']) ? $elements['#cache']['bin'] : 'cache';
   $expire = isset($elements['#cache']['expire']) ? $elements['#cache']['expire'] : CACHE_PERMANENT;
   cache_set($cid, $data, $bin, $expire);
+  // If the rendered object was saved between the start and the end of
+  // rendering, this cache is invalid, delete it.
+  if (isset($elements['#cache']['checker callback'])) {
+    $elements['#cache'] += array('checker arguments' => array());
+    if (!call_user_func_array($elements['#cache']['checker callback'], $elements['#cache']['checker arguments'])) {
+      cache_clear_all($cid, $bin);
+    }
+  }
 }
 
 /**

