--- BlogDataService.orig.cs	2005-03-18 00:00:22.000000000 +0100
+++ BlogDataService.cs	2005-03-18 00:00:15.000000000 +0100
@@ -523,7 +523,7 @@
 								// we need to auto discover the trackback url
 								// http://www.movabletype.org/docs/mttrackback.html
 
-								string trackbackUrl = GetTrackbackLink(requestBody);
+								string trackbackUrl = GetTrackbackLink(requestBody, externalUri);
 								if (trackbackUrl != null)
 								{
 									TrackbackInfo info = new TrackbackInfo(trackbackUrl, job.info.SourceUrl, job.info.SourceTitle, job.info.SourceExcerpt, job.info.SourceBlogName);
@@ -579,7 +579,7 @@
 			}
 		}
 
-		protected string GetTrackbackLink(string pageBody)
+		protected string GetTrackbackLink(string pageBody, string externalUri)
 		{		
 			string sPattern = @"<rdf:\w+\s[^>]*?>(</rdf:rdf>)?";
 			Regex anchors = new Regex(sPattern,RegexOptions.IgnoreCase);
@@ -587,10 +587,13 @@
 			foreach(Match match in anchors.Matches(pageBody)) 
 			{ 
 				string pattern = "trackback:ping=\"(?<url>[^\"]+)\"";
+				string ident_pattern = "dc:identifier=\"(?<identifier>[^\"]+)\"";
 				Regex anchor = new Regex(pattern, RegexOptions.IgnoreCase);
+				Regex ident  = new Regex(ident_pattern, RegexOptions.IgnoreCase);
 
 				Match m = anchor.Match(match.Value);
-				if (m.Groups["url"].Value != "")
+				Match m2 = ident.Match(match.Value);
+				if (m.Groups["url"].Value != "" && m2.Groups["identifier"].Value == externalUri)
 				{
 					Uri trackBacklink = new Uri( m.Groups["url"].Value );
 					if ( trackBacklink.Scheme == Uri.UriSchemeHttp)

