diff --git a/menu_trail_by_path.module b/menu_trail_by_path.module
index b24a24c..f5af67a 100644
--- a/menu_trail_by_path.module
+++ b/menu_trail_by_path.module
@@ -21,6 +21,7 @@
  * timing, not its data.
  */
 function menu_trail_by_path_page_delivery_callback_alter() {
+  global $language;
   $parent_candidates = _menu_trail_by_path_get_parent_candidates();
   // Don't even bother if current page is root
   if (empty($parent_candidates)) {
@@ -31,7 +32,7 @@ function menu_trail_by_path_page_delivery_callback_alter() {
   $matched_menus = array();
   $matched_link_titles = array();
   $results = db_select('menu_links','ml')
-    ->fields('ml',array('menu_name','link_path','link_title','depth'))
+    ->fields('ml')
     ->condition('link_path',$parent_candidates,'IN')
     ->execute();
 
@@ -50,6 +51,10 @@ function menu_trail_by_path_page_delivery_callback_alter() {
     // Get the Link Title if it can be found in a menu item
     if ($record->link_title && !isset($matched_link_titles[$record->link_path])) {
       $matched_link_titles[$record->link_path] = $record->link_title;
+      // Try to translate the link title if i18n_menu is available
+      if (module_exists('i18n_menu')) {
+        $matched_link_titles[$record->link_path] = _i18n_menu_link_title((array)$record, $language->language);
+      }
     }
   }
 
@@ -132,7 +137,7 @@ function menu_trail_by_path_form($form, &$form_state) {
  */
 function _menu_trail_by_path_get_parent_candidates($path = NULL) {
   if (!isset($path)) {
-    $path = request_path();
+    $path = drupal_get_path_alias();
   }
   $pieces = explode('/', $path);
   $path = '';
