diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index c376882..e7e9046 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -1961,20 +1961,25 @@ function drupal_array_merge_deep_array($arrays) {
   $result = array();
 
   foreach ($arrays as $array) {
-    foreach ($array as $key => $value) {
-      // Renumber integer keys as array_merge_recursive() does. Note that PHP
-      // automatically converts array keys that are integer strings (e.g., '1')
-      // to integers.
-      if (is_integer($key)) {
-        $result[] = $value;
-      }
-      // Recurse when both values are arrays.
-      elseif (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
-        $result[$key] = drupal_array_merge_deep_array(array($result[$key], $value));
-      }
-      // Otherwise, use the latter value, overriding any previous value.
-      else {
-        $result[$key] = $value;
+    if (!is_array($array)) {
+      $result[] = $array;
+    }
+    else {
+      foreach ($array as $key => $value) {
+        // Renumber integer keys as array_merge_recursive() does. Note that PHP
+        // automatically converts array keys that are integer strings (e.g., '1')
+        // to integers.
+        if (is_integer($key)) {
+          $result[] = $value;
+        }
+        // Recurse when both values are arrays.
+        elseif (isset($result[$key]) && is_array($result[$key]) && is_array($value)) {
+          $result[$key] = drupal_array_merge_deep_array(array($result[$key], $value));
+        }
+        // Otherwise, use the latter value, overriding any previous value.
+        else {
+          $result[$key] = $value;
+        }
       }
     }
   }
