diff --git a/login_destination.module b/login_destination.module
index 25701b7..72d2ff8 100644
--- a/login_destination.module
+++ b/login_destination.module
@@ -177,7 +177,7 @@ function login_destination_validate($form, &$form_state) {
   // LoginToboggan's unified page is rendered dynamically. Fix it.
   switch ($form['#form_id']) {
     case 'user_register_form':
-      if (drupal_match_path($_GET['q'], 'user')) {
+      if (drupal_match_path($_GET['q'], 'user' . "\n" . 'user/login')) {
         $_GET['q'] = 'user/register';
       }
       break;
@@ -211,7 +211,7 @@ function login_destination_menu_link_alter(&$item) {
   // Flag a link to be altered by hook_translated_menu_link_alter().
   // This is called only on menu rebuild, so we have to add this information
   // manually to the database on install. Clearing caches also helps.
-  if ($item['link_path'] == 'user/logout' || $item['link_path'] == 'user') {
+  if ($item['link_path'] == 'user/logout' || $item['link_path'] == 'user/login' || $item['link_path'] == 'user') {
     $item['options']['alter'] = TRUE;
   }
 }
@@ -222,7 +222,7 @@ function login_destination_menu_link_alter(&$item) {
 function login_destination_translated_menu_link_alter(&$item, $map) {
   global $user;
   // Append the current path to URL.
-  if ($item['link_path'] == 'user/logout' || ($item['link_path'] == 'user' && user_is_anonymous())) {
+  if ($item['link_path'] == 'user/logout' || $item['link_path'] == 'user/login' || ($item['link_path'] == 'user' && user_is_anonymous())) {
     $item['localized_options']['query'] = array('current' => $_GET['q']);
   }
 }
