diff --git a/includes/form.inc b/includes/form.inc
index decca00..8679bd8 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -3772,13 +3772,10 @@ function theme_password($variables) {
  * Expand weight elements into selects.
  */
 function form_process_weight($element) {
-  for ($n = (-1 * $element['#delta']); $n <= $element['#delta']; $n++) {
-    $weights[$n] = $n;
-  }
-  $element['#options'] = $weights;
-  $element['#type'] = 'select';
+  $element['#type'] = 'textfield';
+  $element['#size'] = 6;
   $element['#is_weight'] = TRUE;
-  $element += element_info('select');
+  $element += element_info($element['#type']);
   return $element;
 }
 
diff --git a/modules/filter/filter.test b/modules/filter/filter.test
index 67d0833..18cbde5 100644
--- a/modules/filter/filter.test
+++ b/modules/filter/filter.test
@@ -281,7 +281,7 @@ class FilterAdminTestCase extends DrupalWebTestCase {
     $result = db_query('SELECT * FROM {cache_filter}')->fetchObject();
     $this->assertFalse($result, t('Cache cleared.'));
 
-    $elements = $this->xpath('//select[@name=:first]/following::select[@name=:second]', array(
+    $elements = $this->xpath('//input[@name=:first]/following::input[@name=:second]', array(
       ':first' => 'filters[' . $first_filter . '][weight]',
       ':second' => 'filters[' . $second_filter . '][weight]',
     ));
@@ -295,7 +295,7 @@ class FilterAdminTestCase extends DrupalWebTestCase {
     $this->assertFieldByName('filters[' . $second_filter . '][weight]', 1, t('Order saved successfully.'));
     $this->assertFieldByName('filters[' . $first_filter . '][weight]', 2, t('Order saved successfully.'));
 
-    $elements = $this->xpath('//select[@name=:first]/following::select[@name=:second]', array(
+    $elements = $this->xpath('//input[@name=:first]/following::input[@name=:second]', array(
       ':first' => 'filters[' . $second_filter . '][weight]',
       ':second' => 'filters[' . $first_filter . '][weight]',
     ));
diff --git a/modules/menu/menu.test b/modules/menu/menu.test
index d1f16f6..a52f406 100644
--- a/modules/menu/menu.test
+++ b/modules/menu/menu.test
@@ -654,7 +654,7 @@ class MenuNodeTestCase extends DrupalWebTestCase {
     $this->assertLink($node_title);
 
     $this->drupalGet('node/' . $node->nid . '/edit');
-    $this->assertOptionSelected('edit-menu-weight', 17, t('Menu weight correct in edit form'));
+    $this->assertFieldByName('menu[weight]', 17, t('Menu weight correct in edit form'));
 
     // Edit the node and remove the menu link.
     $edit = array(
diff --git a/modules/simpletest/tests/ajax.test b/modules/simpletest/tests/ajax.test
index 9579792..ae34c91 100644
--- a/modules/simpletest/tests/ajax.test
+++ b/modules/simpletest/tests/ajax.test
@@ -379,7 +379,7 @@ class AJAXMultiFormTestCase extends AJAXTestCase {
     // each form.
     $this->drupalGet('form-test/two-instances-of-same-form');
     foreach ($field_xpaths as $form_html_id => $field_xpath) {
-      $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == 1, t('Found the correct number of field items on the initial page.'));
+      $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == 2, t('Found the correct number of field items on the initial page.'));
       $this->assertFieldByXPath($field_xpath . $button_xpath_suffix, NULL, t('Found the "add more" button on the initial page.'));
     }
     $this->assertNoDuplicateIds(t('Initial page contains unique IDs'), 'Other');
@@ -389,7 +389,7 @@ class AJAXMultiFormTestCase extends AJAXTestCase {
     foreach ($field_xpaths as $form_html_id => $field_xpath) {
       for ($i = 0; $i < 2; $i++) {
         $this->drupalPostAJAX(NULL, array(), array($button_name => $button_value), 'system/ajax', array(), array(), $form_html_id);
-        $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == $i+2, t('Found the correct number of field items after an AJAX submission.'));
+        $this->assert(count($this->xpath($field_xpath . $field_items_xpath_suffix)) == ($i+1)*2+2, t('Found the correct number of field items after an AJAX submission.'));
         $this->assertFieldByXPath($field_xpath . $button_xpath_suffix, NULL, t('Found the "add more" button after an AJAX submission.'));
         $this->assertNoDuplicateIds(t('Updated page contains unique IDs'), 'Other');
       }
diff --git a/modules/simpletest/tests/form.test b/modules/simpletest/tests/form.test
index 71187b5..ebb6806 100644
--- a/modules/simpletest/tests/form.test
+++ b/modules/simpletest/tests/form.test
@@ -307,7 +307,6 @@ class FormsTestCase extends DrupalWebTestCase {
     $type_map = array(
       'textarea' => 'textarea',
       'select' => 'select',
-      'weight' => 'select',
       'date' => 'select',
     );
 
@@ -1185,7 +1184,7 @@ class FormsRebuildTestCase extends DrupalWebTestCase {
     // field items in the field for which we just added an item.
     $this->drupalGet('node/add/page');
     $this->drupalPostAJAX(NULL, array(), array('field_ajax_test_add_more' => t('Add another item')), 'system/ajax', array(), array(), 'page-node-form');
-    $this->assert(count($this->xpath('//div[contains(@class, "field-name-field-ajax-test")]//input[@type="text"]')) == 2, t('AJAX submission succeeded.'));
+    $this->assert(count($this->xpath('//div[contains(@class, "field-name-field-ajax-test")]//input[@type="text"]')) == 2*2, t('AJAX submission succeeded.'));
 
     // Submit the form with the non-Ajax "Save" button, leaving the title field
     // blank to trigger a validation error, and ensure that a validation error
@@ -1197,7 +1196,7 @@ class FormsRebuildTestCase extends DrupalWebTestCase {
 
     // Ensure that the form contains two items in the multi-valued field, so we
     // know we're testing a form that was correctly retrieved from cache.
-    $this->assert(count($this->xpath('//form[contains(@id, "page-node-form")]//div[contains(@class, "form-item-field-ajax-test")]//input[@type="text"]')) == 2, t('Form retained its state from cache.'));
+    $this->assert(count($this->xpath('//form[contains(@id, "page-node-form")]//div[contains(@class, "form-item-field-ajax-test")]//input[@type="text"]')) == 2*2, t('Form retained its state from cache.'));
 
     // Ensure that the form's action is correct.
     $forms = $this->xpath('//form[contains(@class, "node-page-form")]');
