Index: simpletest.module
===================================================================
--- simpletest.module	(revision 3508)
+++ simpletest.module	(working copy)
@@ -219,28 +219,28 @@
   if (!$test_running) {
     $test_running = TRUE;
     $test = simpletest_get_total_test($testlist);
-    switch ($reporter) {
-      case 'text':
-        $reporter = &new TextReporter();
-        break;
-      case 'xml':
-        $reporter = &new XMLReporter();
-        break;
-      case 'html':
-        $reporter = &new HtmlReporter();
-        break;
-      case 'drupal':
-        $reporter = &new DrupalReporter();
-        break;
+    if (gettype($reporter) == 'string') {
+      switch ($reporter) {
+    	case 'text':
+          $reporter = &new TextReporter();
+          break;
+      	case 'xml':
+          $reporter = &new XMLReporter();
+          break;
+        case 'html':
+          $reporter = &new HtmlReporter();
+          break;
+        case 'drupal':
+          $reporter = &new DrupalReporter();
+          break;
+      }
     }
     
     cache_clear_all();
     $results = $test->run($reporter);
      
     switch (get_class($reporter)) {
-      case 'TextReporter':
-      case 'XMLReporter':
-      case 'HtmlReporter':
+      default:
         return $results;
       case 'DrupalReporter':
         return $reporter->getOutput();
