diff -u b/inline_entity_form.module b/inline_entity_form.module --- b/inline_entity_form.module +++ b/inline_entity_form.module @@ -1387,7 +1387,26 @@ $data = check_plain($data); if (isset($field['process']) && function_exists($field['process'])) { - $data = call_user_func($field['process'], $data); + if (isset($field['arguments']) && is_array($field['arguments'])) { + // swap integer 1 for the data, similair to hook_menu + $arguments = array(); + $replaced = false; + foreach ($field['arguments'] as $arg) { + if ($arg === 1) { + $arguments[] = $data; + $replaced = true; + } else { + $arguments[] = $arg; + } + } + // If the data was never swapped in, use it as the first argument + if (!$replaced) { + array_unshift($arguments, $data); + } + } else { + $arguments = array($data); + } + $data = call_user_func_array($field['process'], $arguments); } } elseif ($field['type'] == 'field') {