Index: includes/menu.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/menu.inc,v
retrieving revision 1.228
diff -u -r1.228 menu.inc
--- includes/menu.inc	26 Nov 2007 16:19:37 -0000	1.228
+++ includes/menu.inc	5 Dec 2007 19:54:18 -0000
@@ -2191,20 +2191,24 @@
 function _menu_site_is_offline() {
   // Check if site is set to off-line mode.
   if (variable_get('site_offline', 0)) {
-    // Check if the user has administration privileges.
-    if (!user_access('administer site configuration')) {
+    // Check if the user has the privileges to access the site.
+    if (!user_access('access site while in maintenance')) {
       // Check if this is an attempt to login.
       if (drupal_get_normal_path($_GET['q']) != 'user') {
         return TRUE;
       }
     }
     else {
-      $offline_message = t('Operating in off-line mode.');
-      $messages = drupal_set_message();
-      // Ensure that the off-line message is displayed only once [allowing for
-      // page redirects].
-      if (!isset($messages) || !isset($messages['status']) || !in_array($offline_message, $messages['status'])) {
-        drupal_set_message($offline_message);
+      // Only display a message to only users with administrator priviledges.
+      if (user_access('administer site configuration')) {
+        $offline_message = t('Operating in off-line mode.');
+        $messages = drupal_set_message();
+        // Ensure that the off-line message is displayed only once [allowing for
+        // page redirects].
+        if (!isset($messages) || !isset($messages['status']) || !in_array($offline_message, $messages['status'])) {
+            drupal_set_message($offline_message);
+          }
+        }
       }
     }
   }
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.556
diff -u -r1.556 system.module
--- modules/system/system.module	30 Nov 2007 12:19:10 -0000	1.556
+++ modules/system/system.module	5 Dec 2007 19:50:01 -0000
@@ -123,7 +123,7 @@
  * Implementation of hook_perm().
  */
 function system_perm() {
-  return array('administer site configuration', 'access administration pages', 'administer actions', 'select different theme', 'administer files');
+  return array('administer site configuration', 'access administration pages', 'administer actions', 'select different theme', 'administer files', 'access site while in maintenance');
 }
 
 /**
