Index: includes/bootstrap.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v retrieving revision 1.127 diff -u -F^f -r1.127 bootstrap.inc --- includes/bootstrap.inc 6 Sep 2006 12:27:50 -0000 1.127 +++ includes/bootstrap.inc 7 Sep 2006 04:05:29 -0000 @@ -321,8 +321,6 @@ function variable_del($name) { * * Note: we do not serve cached pages when status messages are waiting (from * a redirected form submission which was completed). - * Because the output handler is not activated, the resulting page will not - * get cached either. */ function page_get_cache() { global $user, $base_root; @@ -585,15 +583,21 @@ function drupal_set_message($message = N * * @param $type * (optional) Only return messages of this type. + * @param $clear_queue + * (optional) Set to FALSE if you do not want to clear the messages queue */ -function drupal_get_messages($type = NULL) { +function drupal_get_messages($type = NULL, $clear_queue = TRUE) { if ($messages = drupal_set_message()) { if ($type) { - unset($_SESSION['messages'][$type]); + if ($clear_queue) { + unset($_SESSION['messages'][$type]); + } return array($type => $messages[$type]); } else { - unset($_SESSION['messages']); + if ($clear_queue) { + unset($_SESSION['messages']); + } return $messages; } } Index: includes/common.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/common.inc,v retrieving revision 1.572 diff -u -F^f -r1.572 common.inc --- includes/common.inc 1 Sep 2006 08:44:25 -0000 1.572 +++ includes/common.inc 7 Sep 2006 04:05:31 -0000 @@ -1586,7 +1586,7 @@ function _drupal_bootstrap_full() { function page_set_cache() { global $user, $base_root; - if (!$user->uid && $_SERVER['REQUEST_METHOD'] == 'GET') { + if (!$user->uid && $_SERVER['REQUEST_METHOD'] == 'GET' && count(drupal_get_messages(NULL, FALSE)) == 0 ) { // This will fail in some cases, see page_get_cache() for the explanation. if ($data = ob_get_contents()) { $cache = TRUE;