Я сталкивался с этим при поиске той же проблемы (я пытался найти основную проблему, но не смог). В любом случае, решение, которое я в итоге поставил, более сложное, чем должно быть, но оно выполняет свою работу.
Сначала загрузите и установите модуль url_alter . Затем в пользовательском модуле реализуем hook_url_outbound_alter (). Ниже приведен код, который я использовал, но возможны многие варианты.
/**
* Implementation of hook_url_outbound_alter().
*
* If the url_alter module is enabled, and email verification is disabled,
* this will pass the destination parameter to the registration and login tabs.
*/
function os_custom_url_outbound_alter(&$path, &$options, $original) {
if (user_is_anonymous() && in_array($original, array('user', 'user/register', 'user/login')) && empty($options['query']) && !variable_get('user_email_verification', TRUE)) {
$options['query'] = drupal_get_destination();
}
}