diff --git a/includes/common.inc b/includes/common.inc
index 4848f8e..01b9db4 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -3077,10 +3077,18 @@ function element_child($key) {
 }
 
 /**
- * Get keys of a structured array tree element that are not properties (i.e., do not begin with '#').
+ * Get keys of a structured array tree element that are not properties
+ * (i.e., do not begin with '#').
  */
 function element_children($element) {
-  return array_filter(array_keys((array) $element), 'element_child');
+  $results = array();
+  foreach ((array) $element as $key => $value) {
+    // Inlined call to element_child() for performance reasons.
+    if (!isset($key[0]) || $key[0] != '#') {
+      $results[] = $key;
+    }
+  }
+  return $results;
 }
 
 /**
