Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 14204)
+++ wp-includes/default-filters.php	(working copy)
@@ -128,6 +128,7 @@
 add_filter( 'comment_text', 'convert_chars'          );
 add_filter( 'comment_text', 'make_clickable',      9 );
 add_filter( 'comment_text', 'force_balance_tags', 25 );
+add_filter( 'comment_text', 'fill_empty_links',   24 );
 add_filter( 'comment_text', 'convert_smilies',    20 );
 add_filter( 'comment_text', 'wpautop',            30 );
 
Index: wp-includes/formatting.php
===================================================================
--- wp-includes/formatting.php	(revision 14204)
+++ wp-includes/formatting.php	(working copy)
@@ -1094,6 +1094,35 @@
 }
 
 /**
+ * Adds blank string to all HTML A empty elements in content.
+ *
+ * @since 3.0.0
+ *
+ * @param string $text Content that may contain HTML A elements.
+ * @return string Converted content.
+ */
+function fill_empty_links( $text )
+{
+	return preg_replace_callback( "#<a\s[^>]*href=(\"?)([^\" >]*?)\\1[^>]*>[\s|\&nbsp;]*<\/a>#i", 'fill_empty_links_callback', $text);
+}
+//[\s|\&nbsp;]*
+/**
+ * Callback to add a visual placeholder in comments having empty anchor text
+ *
+ * @since 3.0.0
+ *
+ * @param string $matches Single match
+ * @return string Returns a formatted anchor tag with the URL of the link as the anchor text on success. Returns false on failure
+ */
+function fill_empty_links_callback( $matches )
+{
+	if( !$matches[2] )
+		return false;
+
+	return sprintf( '<a href="%1$s">%1$s</a>', esc_url( $matches[2] ) );
+}
+
+/**
  * Acts on text which is about to be edited.
  *
  * Unless $richedit is set, it is simply a holder for the 'format_to_edit'