Index: modules/simpletest/tests/common.test
===================================================================
RCS file: /Users/wright/drupal/local_repo/drupal/modules/simpletest/tests/common.test,v
retrieving revision 1.127
diff -u -p -r1.127 common.test
--- modules/simpletest/tests/common.test	19 Sep 2010 18:10:41 -0000	1.127
+++ modules/simpletest/tests/common.test	5 Oct 2010 06:53:42 -0000
@@ -1889,14 +1889,34 @@ class DrupalErrorCollectionUnitTest exte
     }
   }
 
+  /**
+   * Error handler that collects errors in an array.
+   *
+   * This test class is trying to verify that simpletest correctly sees errors
+   * and warnings. However, it can't generate errors and warnings that
+   * propagate up to the testing framework itself, or these tests would always
+   * fail. So, this special copy of error() doesn't propagate the errors up
+   * the class hierarchy. It just stuffs them into a protected collectedErrors
+   * array for various assertions to inspect.
+   */
   protected function error($message = '', $group = 'Other', array $caller = NULL) {
-    // This function overiddes DrupalWebTestCase::error(). We collect an error...
-    $this->collectedErrors[] = array(
-      'message' => $message,
-      'group' => $group,
-      'caller' => $caller
-    );
-    // ... and ignore it.
+    // Due to a WTF elsewhere, simpletest treats verbose verbose() messages as
+    // if they were an 'error'. But, we don't want to collect those here. This
+    // function just wants to collect the real errors (PHP notices, PHP fatal
+    // errors, etc.), and let all the 'errors' from the 'User notice' group
+    // bubble up to the parent classes to be handled (and eventually
+    // displayed) as normal.
+    if ($group == 'User notice') {
+      parent::error($message, $group, $caller);
+    }
+    // Everything else should be collected but not propagated.
+    else {
+      $this->collectedErrors[] = array(
+        'message' => $message,
+        'group' => $group,
+        'caller' => $caller
+      );
+    }
   }
 
   /**
