Index: modules/update/update.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/update/update.css,v
retrieving revision 1.4
diff -u -p -r1.4 update.css
--- modules/update/update.css	6 Feb 2008 20:01:41 -0000	1.4
+++ modules/update/update.css	26 Apr 2009 18:28:36 -0000
@@ -56,6 +56,10 @@
   direction: ltr; /* Note: version numbers should always be LTR. */
 }
 
+.update tr.unknown {
+  background: #ddd;
+}
+
 table.update,
 .update table.version {
   width: 100%;
Index: modules/update/update.fetch.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/update/update.fetch.inc,v
retrieving revision 1.16
diff -u -p -r1.16 update.fetch.inc
--- modules/update/update.fetch.inc	14 Mar 2009 23:01:37 -0000	1.16
+++ modules/update/update.fetch.inc	26 Apr 2009 18:28:36 -0000
@@ -109,10 +109,11 @@ function _update_cron_notify() {
   include_once DRUPAL_ROOT . '/includes/install.inc';
   $status = update_requirements('runtime');
   $params = array();
+  $notify_all = (variable_get('update_notification_threshold', 'all') == 'all');
   foreach (array('core', 'contrib') as $report_type) {
     $type = 'update_' . $report_type;
     if (isset($status[$type]['severity'])
-        && $status[$type]['severity'] == REQUIREMENT_ERROR) {
+        && ($status[$type]['severity'] == REQUIREMENT_ERROR || ($notify_all && $status[$type]['reason'] == UPDATE_NOT_CURRENT))) {
       $params[$report_type] = $status[$type]['reason'];
     }
   }
Index: modules/update/update.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/update/update.module,v
retrieving revision 1.30
diff -u -p -r1.30 update.module
--- modules/update/update.module	22 Jan 2009 03:11:54 -0000	1.30
+++ modules/update/update.module	26 Apr 2009 18:28:36 -0000
@@ -254,7 +254,7 @@ function _update_requirement_check($proj
       break;
     case UPDATE_NOT_CURRENT:
       $requirement_label = t('Out of date');
-      $requirement['severity'] = variable_get('update_notification_threshold', 'all') == 'all' ? REQUIREMENT_ERROR : REQUIREMENT_WARNING;
+      $requirement['severity'] = REQUIREMENT_WARNING;
       break;
     case UPDATE_UNKNOWN:
     case UPDATE_NOT_CHECKED:
Index: modules/update/update.report.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/update/update.report.inc,v
retrieving revision 1.15
diff -u -p -r1.15 update.report.inc
--- modules/update/update.report.inc	17 Sep 2008 07:11:59 -0000	1.15
+++ modules/update/update.report.inc	26 Apr 2009 18:28:36 -0000
@@ -47,17 +47,18 @@ function theme_update_report($data) {
         $class = 'ok';
         $icon = theme('image', 'misc/watchdog-ok.png', t('ok'), t('ok'));
         break;
+      case UPDATE_UNKNOWN:
+        $class = 'unknown';
+        $icon = theme('image', 'misc/watchdog-warning.png', t('warning'), t('warning'));
+        break;
       case UPDATE_NOT_SECURE:
       case UPDATE_REVOKED:
       case UPDATE_NOT_SUPPORTED:
+        $class = 'error';
+        $icon = theme('image', 'misc/watchdog-error.png', t('error'), t('error'));
+        break;
+      case UPDATE_NOT_CHECKED:
       case UPDATE_NOT_CURRENT:
-        if ($notification_level == 'all'
-            || $project['status'] != UPDATE_NOT_CURRENT) {
-          $class = 'error';
-          $icon = theme('image', 'misc/watchdog-error.png', t('error'), t('error'));
-          break;
-        }
-        // Otherwise, deliberate no break and use the warning class/icon.
       default:
         $class = 'warning';
         $icon = theme('image', 'misc/watchdog-warning.png', t('warning'), t('warning'));
