Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.849
diff -u -p -r1.849 common.inc
--- includes/common.inc	19 Jan 2009 10:46:50 -0000	1.849
+++ includes/common.inc	19 Jan 2009 20:14:57 -0000
@@ -797,8 +797,10 @@ function _drupal_log_error($error, $fata
     $number++;
   }
 
-  // Force display of error messages in update.php.
-  if (variable_get('error_level', 1) == 1 || (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'update')) {
+  // Force display of error messages in update.php or if the proper error
+  // reporting level is set.
+  $error_level = variable_get('error_level', 2);
+  if ($error_level == 2 || ($error_level == 1 && $type != 'Notice') || (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'update')) {
     drupal_set_message(t('%type: %message in %function (line %line of %file).', $error), 'error');
   }
 
Index: modules/system/system.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.admin.inc,v
retrieving revision 1.118
diff -u -p -r1.118 system.admin.inc
--- modules/system/system.admin.inc	19 Jan 2009 10:46:51 -0000	1.118
+++ modules/system/system.admin.inc	19 Jan 2009 20:15:01 -0000
@@ -1257,7 +1257,6 @@ function system_site_information_setting
  * @see system_settings_form()
  */
 function system_error_reporting_settings() {
-
   $form['site_403'] = array(
     '#type' => 'textfield',
     '#title' => t('Default 403 (access denied) page'),
@@ -1266,7 +1265,6 @@ function system_error_reporting_settings
     '#description' => t('This page is displayed when the requested document is denied to the current user. If unsure, specify nothing.'),
     '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q=')
   );
-
   $form['site_404'] = array(
     '#type' => 'textfield',
     '#title' => t('Default 404 (not found) page'),
@@ -1275,15 +1273,19 @@ function system_error_reporting_settings
     '#description' => t('This page is displayed when no other content matches the requested document. If unsure, specify nothing.'),
     '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q=')
   );
-
   $form['error_level'] = array(
-    '#type' => 'select', '#title' => t('Error reporting'),
-    '#default_value' => 1,
-    '#options' => array(t('Write errors to the log'), t('Write errors to the log and to the screen')),
-    '#description' => t('Specify where Drupal, PHP and SQL errors are logged. While it is recommended that a site running in a production environment write errors to the log only, in a development or testing environment it may be helpful to write errors both to the log and to the screen.')
+    '#type' => 'radios',
+    '#title' => t('Error reporting'),
+    '#default_value' => 2,
+    '#options' => array(
+      0 => t('Site in production: Do not display any errors.'),
+      1 => t('Site in development: Display functional errors only.'),
+      2 => t('For developers: Display all errors.'),
+    ),
+    '#description' => t('Display settings for error messages. Note that all error messages are always logged.'),
   );
 
-  return system_settings_form($form, TRUE);
+  return system_settings_form($form);
 }
 
 /**
