--- pingback.module.orig	2010-03-19 14:07:46.000000000 +0000
+++ pingback.module	2010-03-19 15:12:05.000000000 +0000
@@ -467,13 +467,27 @@
 function _pingback_url_to_nid($url) {
   //first check if the url is really in our site, as well as getting the non-base-url part
   if (preg_match($a = '#^'. preg_quote($GLOBALS['base_url'], '#') .'/(.+)$#', $url, $matches)) {
+
+    // Check if we have a language prefix and strip it
+    $alias = explode('/', $matches[1]);
+    $alias_lang = language_default('language');
+    $__langs = language_list();
+    foreach (array_keys($__langs) as $lang) {
+      if ($lang == $alias[0]) {
+        $alias_lang = $lang;
+        array_shift($alias);
+        break;
+      }
+    }
+    $matches[1] = implode('/', $alias);
+
     //dpm($matches[1]);
     //dpm(drupal_get_normal_path($matches[1]));
     if (!variable_get('clean_url', 0)) {
       // Clean URLs not enabled. Strip '?q=' from URL.
       $matches[1] = str_replace('?q=', '', $matches[1]);
     }
-    if (preg_match($b = '#^node/([0-9]+)$#', drupal_get_normal_path($matches[1]), $matches2)) {
+    if (preg_match($b = '#^node/([0-9]+)$#', drupal_get_normal_path($matches[1], $alias_lang), $matches2)) {
       return $matches2[1];
     } //else dpm($b);
   }
