--- comment.php.ori	2009-01-28 21:13:14.000000000 +0100
+++ comment.php	2009-04-19 12:31:48.078125000 +0200
@@ -1394,17 +1394,9 @@
 
 	$pung = get_pung($post_ID);
 
-	// Variables
-	$ltrs = '\w';
-	$gunk = '/#~:.?+=&%@!\-';
-	$punc = '.:?\-';
-	$any = $ltrs . $gunk . $punc;
-
 	// Step 1
 	// Parsing the post, external links (if any) are stored in the $post_links array
-	// This regexp comes straight from phpfreaks.com
-	// http://www.phpfreaks.com/quickcode/Extract_All_URLs_on_a_Page/15.php
-	preg_match_all("{\b http : [$any] +? (?= [$punc] * [^$any] | $)}x", $content, $post_links_temp);
+	preg_match_all( '/\bhref\s*=["\'\s]*http([^"\'\s]+)/i', $content, $post_links_temp );
 
 	// Step 2.
 	// Walking thru the links array
@@ -1415,7 +1407,7 @@
 	// http://dummy-weblog.org/post.php
 	// We don't wanna ping first and second types, even if they have a valid <link/>
 
-	foreach ( (array) $post_links_temp[0] as $link_test ) :
+	foreach ( (array) $post_links_temp[1] as $link_test ) :
 		if ( !in_array($link_test, $pung) && (url_to_postid($link_test) != $post_ID) // If we haven't pung it already and it isn't a link to itself
 				&& !is_local_attachment($link_test) ) : // Also, let's never ping local attachments.
 			if ( $test = @parse_url($link_test) ) {
