diff --git a/includes/cache.inc b/includes/cache.inc
index 524ab1d419fe83cdd0f7f1c0b46f7bdcf5779047..140f25e65b7ba5f49174114fdac3728fc5b9d627 100644
--- a/includes/cache.inc
+++ b/includes/cache.inc
@@ -133,8 +133,10 @@ function cache_clear_all($cid = NULL, $table = NULL, $wildcard = FALSE) {
   global $user;
 
   if (!isset($cid) && !isset($table)) {
-    cache_clear_all(NULL, 'cache_page');
+    // Clear the block cache first, so stale data will 
+    // not end up in the page cache. 
     cache_clear_all(NULL, 'cache_block');
+    cache_clear_all(NULL, 'cache_page');
     return;
   }