Index: wp-comments-post.php
===================================================================
--- wp-comments-post.php	(revision 18474)
+++ wp-comments-post.php	(working copy)
@@ -90,12 +90,6 @@
 $comment_id = wp_new_comment( $commentdata );
 
 $comment = get_comment($comment_id);
-if ( !$user->ID ) {
-	$comment_cookie_lifetime = apply_filters('comment_cookie_lifetime', 30000000);
-	setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie('comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
-}
 
 $location = empty($_POST['redirect_to']) ? get_comment_link($comment_id) : $_POST['redirect_to'] . '#comment-' . $comment_id;
 $location = apply_filters('comment_post_redirect', $location, $comment);
Index: wp-includes/comment.php
===================================================================
--- wp-includes/comment.php	(revision 18474)
+++ wp-includes/comment.php	(working copy)
@@ -2014,4 +2014,24 @@
 	return $open;
 }
 
+/**  
+ * Sets the cookies used to store an unauthenticated commentator's identity. Typically used  
+ * to recall previous comments by this commentator that are still held in moderation.  
+ *  
+ * @param int $comment_id Comment ID.
+ */  
+function wp_set_comment_cookies($comment_id) {  
+	global $user;
+
+	if ( !$comment = get_comment($comment_id) )
+		return false;
+
+	if ( !$user->ID ) {
+		$comment_cookie_lifetime = apply_filters('comment_cookie_lifetime', 30000000);
+		setcookie('comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
+		setcookie('comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
+		setcookie('comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN);
+	}
+}  
+
 ?>
Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 18474)
+++ wp-includes/default-filters.php	(working copy)
@@ -253,6 +253,7 @@
 add_action( 'save_post',                  '_save_post_hook',          5, 2 );
 add_action( 'transition_post_status',     '_transition_post_status',  5, 3 );
 add_action( 'comment_form', 'wp_comment_form_unfiltered_html_nonce'        );
+add_action( 'comment_post',               'wp_set_comment_cookies'         ); 
 add_action( 'wp_scheduled_delete',        'wp_scheduled_delete'            );
 add_action( 'before_wp_tiny_mce',         'wp_print_editor_js'             );
 add_action( 'after_wp_tiny_mce',          'wp_preload_dialogs',      10, 1 );
