Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.206
diff -u -p -r1.206 bootstrap.inc
--- includes/bootstrap.inc	10 Jan 2008 22:47:17 -0000	1.206
+++ includes/bootstrap.inc	14 Mar 2008 01:02:06 -0000
@@ -790,11 +790,11 @@ function watchdog($type, $message, $vari
  *   - 'status'
  *   - 'warning'
  *   - 'error'
- * @param $repeat
- *   If this is FALSE and the message is already set, then the message won't
- *   be repeated.
+ * @param $message_id
+ *   A string that uniquely identifies the message, so that other modules can modify it using hook_message_alter().
+ *   This should be prefixed with the name of the module making the call to drupal_set_message().
  */
-function drupal_set_message($message = NULL, $type = 'status', $repeat = TRUE) {
+function drupal_set_message($message = NULL, $type = 'status', $message_id = NULL) {
   if ($message) {
     if (!isset($_SESSION['messages'])) {
       $_SESSION['messages'] = array();
@@ -805,7 +805,12 @@ function drupal_set_message($message = N
     }
 
     if ($repeat || !in_array($message, $_SESSION['messages'][$type])) {
-      $_SESSION['messages'][$type][] = $message;
+      if (isset($message_id)) {
+        $_SESSION['messages'][$type][$message_id] = $message;
+      }
+      else {
+        $_SESSION['messages'][$type][] = $message;
+      }
     }
   }
 
@@ -828,6 +833,7 @@ function drupal_set_message($message = N
  */
 function drupal_get_messages($type = NULL, $clear_queue = TRUE) {
   if ($messages = drupal_set_message()) {
+    module_invoke_all('message_alter', $messages);
     if ($type) {
       if ($clear_queue) {
         unset($_SESSION['messages'][$type]);
Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.264
diff -u -p -r1.264 menu.inc
--- includes/menu.inc	23 Feb 2008 08:13:09 -0000	1.264
+++ includes/menu.inc	14 Mar 2008 01:02:06 -0000
@@ -2359,7 +2359,7 @@ function _menu_site_is_offline() {
       // page redirects], and specifically suppress its display on the site
       // maintenance page.
       if (drupal_get_normal_path($_GET['q']) != 'admin/settings/site-maintenance') {
-        drupal_set_message(t('Operating in off-line mode.'), 'status', FALSE);
+        drupal_set_message(t('Operating in off-line mode.'), 'status', 'menu_site_offline');
       }
     }
     else {
