diff --git a/core/modules/system/tests/form.test b/core/modules/system/tests/form.test
index b64fdd7..162620c 100644
--- a/core/modules/system/tests/form.test
+++ b/core/modules/system/tests/form.test
@@ -620,6 +620,14 @@ class FormElementTestCase extends DrupalWebTestCase {
       )));
     }
   }
+
+  /**
+   * Verifies that an empty select element does not result in a PHP warning.
+   */
+  function testEmptySelect() {
+    $this->drupalGet('form-test/empty-select');
+    $this->assertNoText(t('Warning: Invalid argument supplied for foreach()'));
+  }
 }
 
 /**
diff --git a/core/modules/system/tests/modules/form_test/form_test.module b/core/modules/system/tests/modules/form_test/form_test.module
index c727c51..5139984 100644
--- a/core/modules/system/tests/modules/form_test/form_test.module
+++ b/core/modules/system/tests/modules/form_test/form_test.module
@@ -255,6 +255,13 @@ function form_test_menu() {
     'access callback' => TRUE,
   );
 
+  $items['form-test/empty-select'] = array(
+    'title' => 'Empty Select Element',
+    'page callback' => 'drupal_get_form',
+    'page arguments' => array('form_test_empty_select'),
+    'access callback' => TRUE,
+  );
+
   return $items;
 }
 
@@ -2035,3 +2042,16 @@ function form_test_required_attribute($form, &$form_state) {
 
   return $form;
 }
+
+/**
+ * Builds a form to test select elements when #options is not an array.
+ */
+function form_test_empty_select($form, &$form_state) {
+  $form['select'] = array(
+    '#type' => 'select',
+    '#title' => t('Select'),
+    '#multiple' => FALSE,
+    '#options' => NULL,
+  );
+  return $form;
+}
