Index: languageinterface.module
===================================================================
--- languageinterface.module	(revision 116)
+++ languageinterface.module	(working copy)
@@ -151,22 +151,35 @@
       $destination_nid = arg(1);
       $remaining = '/'.implode("/",$urlarray);
     }
+	
+	if (module_exists('path')) {
+	$alias = db_result(db_query("SELECT dst FROM {url_alias} WHERE src like '%s'", 'node/'. $destination_nid));
 		if (!empty($domain)) {
+		  $path = drupal_get_path_alias($domain .$prefix . $alias . $remaining, array('language' => $lang, 'prefix' => $prefix));
+		}
+		else {
+      $path = url(rootpath() .$prefix . $alias . $remaining, array('language' => $lang, 'prefix' => $prefix));
+		}
+	} 
+    else {
+		if (!empty($domain)) {
 		  $path = drupal_get_path_alias($domain .$prefix.'/node/'. $destination_nid . $remaining, array('language' => $lang, 'prefix' => $prefix));
 		}
 		else {
       $path = url(rootpath().$prefix.'node/'. $destination_nid . $remaining, array('language' => $lang, 'prefix' => $prefix));
 		}
 	}
+	}
   // Endif (current page is node)
   else {
     $remaining = implode("/", $urlarray);
     if (!empty($domain)) {
-      $path = drupal_get_path_alias($domain .$prefix . $remaining) ;
+      $path = drupal_get_path_alias($domain .$prefix . drupal_get_path_alias(drupal_get_normal_path($remaining), $lang), $lang) ;
     }
     else {
-      $path = drupal_get_path_alias(rootpath() . $prefix . $remaining) ;
+      $path = drupal_get_path_alias(rootpath() . $prefix . drupal_get_path_alias(drupal_get_normal_path($remaining), $lang), $lang) ;
     }
+		
   }
   return $path;
 }
