diff --git a/includes/common.inc b/includes/common.inc
index c6638dc..3bf6a11 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -6140,9 +6140,15 @@ function element_children(&$elements, $sort = FALSE) {
   $sortable = FALSE;
   foreach ($elements as $key => $value) {
     if ($key === '' || $key[0] !== '#') {
-      $children[$key] = $value;
-      if (is_array($value) && isset($value['#weight'])) {
-        $sortable = TRUE;
+      if (is_array($value)) {
+        $children[$key] = $value;
+        if (isset($value['#weight'])) {
+          $sortable = TRUE;
+        }
+      }
+      else {
+        ddebug_backtrace();
+        drupal_set_message(t('@key is an invalid render array key.', array('@key' => $key)), 'error');
       }
     }
   }
diff --git a/modules/simpletest/tests/common.test b/modules/simpletest/tests/common.test
index 177e457..1a52369 100644
--- a/modules/simpletest/tests/common.test
+++ b/modules/simpletest/tests/common.test
@@ -1708,6 +1708,25 @@ class DrupalRenderTestCase extends DrupalWebTestCase {
     ));
   }
 
+  /**
+   * Test rendering elements with invalid keys.
+   */
+  function testDrupalRenderInvalidKeys() {
+    // Define an element with an invalid key. Keys that begin with # may
+    // contain any value, otherwise they must contain arrays.
+    $key = 'child';
+    $value = 'This should be an array.';
+    $element = array(
+      $key => $value,
+    );
+    $this->drupalSetContent(drupal_render($element));
+    $messages = drupal_get_messages('error', FALSE);
+    $this->verbose('<pre>' . check_plain(var_export($messages, TRUE)) . '</pre>'
+      . '<pre>' .  check_plain(var_export($element, TRUE)) . '</pre>'
+    );
+    $this->assertTrue(in_array(t('@key is an invalid render array key.', array('@key' => $key)), $messages['error']), t('Invalid render array keys are skipped.'));
+  }
+
   protected function assertRenderedElement(array $element, $xpath, array $xpath_args = array()) {
     $original_element = $element;
     $this->drupalSetContent(drupal_render($element));
