Index: includes/common.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/common.inc,v
retrieving revision 1.1043
diff -u -p -r1.1043 common.inc
--- includes/common.inc	8 Nov 2009 12:43:40 -0000	1.1043
+++ includes/common.inc	9 Nov 2009 20:45:59 -0000
@@ -2976,20 +2976,11 @@ function drupal_exit($destination = NULL
  *   An associative array.
  */
 function drupal_map_assoc($array, $function = NULL) {
-  if (!isset($function)) {
-    $result = array();
-    foreach ($array as $value) {
-      $result[$value] = $value;
-    }
-    return $result;
-  }
-  elseif (function_exists($function)) {
-    $result = array();
-    foreach ($array as $value) {
-      $result[$value] = $function($value);
-    }
-    return $result;
+  $array = array_combine($array, $array);
+  if (is_callable($function)) {
+    $array = array_map($function, $array);
   }
+  return $array;
 }
 
 /**
