Index: wp-includes/comment-template.php
===================================================================
--- wp-includes/comment-template.php	(revision 29112)
+++ wp-includes/comment-template.php	(working copy)
@@ -1116,7 +1116,8 @@
 	if ( $user_ID) {
 		$comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( user_id = %d AND comment_approved = '0' ) )  ORDER BY comment_date_gmt", $post->ID, $user_ID));
 	} else if ( empty($comment_author) ) {
-		$comments = get_comments( array('post_id' => $post->ID, 'status' => 'approve', 'order' => 'ASC') );
+		// attempt to sniff recent (within the last hour) anonymous comments from the current visitor
+		$comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND (comment_approved = '1' OR ( comment_author = '' AND comment_approved = '0' AND comment_author_IP = %s AND comment_agent = %s AND comment_date_gmt > %s ) ) ORDER BY comment_date_gmt", $post->ID, $_SERVER['REMOTE_ADDR'], substr( $_SERVER['HTTP_USER_AGENT'], 0, 254 ), gmdate( 'Y-m-d H:i:s', time() - 3600 ) ) );
 	} else {
 		$comments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $wpdb->comments WHERE comment_post_ID = %d AND ( comment_approved = '1' OR ( comment_author = %s AND comment_author_email = %s AND comment_approved = '0' ) ) ORDER BY comment_date_gmt", $post->ID, wp_specialchars_decode($comment_author,ENT_QUOTES), $comment_author_email));
 	}
