Index: patterns.module =================================================================== --- patterns.module (revision 560) +++ patterns.module (working copy) @@ -1360,6 +1360,8 @@ if (is_array($value)) { $new_array[$key] = patterns_array_map($function, $value, $params); } else { + $keyparams = array_merge(array($key), $params); + $key = call_user_func_array($function, $keyparams); $fullparams = array_merge(array($value), $params); $new_array[$key] = call_user_func_array($function, $fullparams); } @@ -1401,7 +1403,7 @@ $tokens = array_keys($action['parameters']); $values = array_values($action['parameters']); // using the internal replace function from the token module - $a = patterns_array_map('_token_replace_tokens', $a, array($tokens, $values, '[', ']')); + $a = patterns_array_map('_token_replace_tokens', $a, array($tokens, $values, '__', '__')); } // array_merge doesn't preserve numeric array keys