diff --git a/masquerade.module b/masquerade.module
index 3ced1f5..4fb8573 100644
--- a/masquerade.module
+++ b/masquerade.module
@@ -124,7 +124,7 @@ function masquerade_menu() {
 }
 
 /**
- * Implementation of hook_menu_link_alter().
+ * Implementation of hook_menu_alter().
  *
  * We need to add a token to the Masquerade paths to protect against CSRF
  * attacks. Since menu items in Drupal do not support dynamic elements these
@@ -132,9 +132,12 @@ function masquerade_menu() {
  * hook_translated_menu_link_alter. Set the 'alter'-option to TRUE to make sure
  * the links get passed through hook_translated_menu_link_alter.
  */
-function masquerade_menu_link_alter(&$item) {
-  if (($item['page callback'] == 'masquerade_switch_user_page') || ($item['page callback'] == 'masquerade_switch_back_page')) {
-    $item['options']['alter'] = TRUE;
+function masquerade_menu_alter(&$items) {
+  $items['masquerade/unswitch']['options']['alter'] = TRUE;
+  $items['masquerade/switch/%']['options']['alter'] = TRUE;
+  $default_test_user = _masquerade_user_load(variable_get('masquerade_test_user', ''));
+  if ($default_test_user && ($default_test_user->uid || $default_test_user->name == variable_get('anonymous', t('Anonymous')))) {
+    $items['masquerade/switch/' . $default_test_user->uid]['options']['alter'] = TRUE;
   }
 }
 
