diff -Naur modules/simpletest/drupal_web_test_case.php modules/simpletest/drupal_web_test_case.php
--- modules/simpletest/drupal_web_test_case.php	2008-04-30 00:45:43.000000000 -0600
+++ modules/simpletest/drupal_web_test_case.php	2008-05-07 15:13:44.000000000 -0600
@@ -639,20 +639,26 @@
             $index = 0;
             $key = preg_replace('/\[\]$/', '', $name);
             $options = $this->getAllOptions($element);
-            foreach ($options as $option) {
-              if (is_array($new_value)) {
-                $option_value= (string)$option['value'];
-                if (in_array($option_value, $new_value)) {
-                  $post[$key .'['. $index++ .']'] = $option_value;
-                  $done = TRUE;
+            if (is_array($new_value) && count($new_value) == 0) {
+              $done = TRUE;
+              unset($edit[$name]);
+            }
+            else {
+              foreach ($options as $option) {
+                if (is_array($new_value)) {
+                  $option_value= (string)$option['value'];
+                  if (in_array($option_value, $new_value)) {
+                    $post[$key .'['. $index++ .']'] = $option_value;
+                    $done = TRUE;
+                    unset($edit[$name]);
+                  }
+                }
+                elseif ($new_value == $option['value']) {
+                  $post[$name] = $new_value;
                   unset($edit[$name]);
+                  $done = TRUE;
                 }
               }
-              elseif ($new_value == $option['value']) {
-                $post[$name] = $new_value;
-                unset($edit[$name]);
-                $done = TRUE;
-              }
             }
             break;
           case 'file':
