Index: wp-comments-post.php
===================================================================
--- wp-comments-post.php	(revision 19601)
+++ wp-comments-post.php	(working copy)
@@ -90,12 +90,7 @@
 $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);
-}
+do_action('set_comment_cookies', $comment, $user);
 
 $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 19601)
+++ wp-includes/comment.php	(working copy)
@@ -570,6 +570,25 @@
 	return update_metadata('comment', $comment_id, $meta_key, $meta_value, $prev_value);
 }
 
+/**  
+ * 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 object $comment Comment object.
+ * @param object $user Comment author's object.
+ *
+ * @since 3.4.0
+ */  
+function wp_set_comment_cookies($comment, $user) {  
+	if ( $user->ID )
+		return;
+
+	$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);
+}  
+
 /**
  * Sanitizes the cookies sent to the user already.
  *
Index: wp-includes/default-filters.php
===================================================================
--- wp-includes/default-filters.php	(revision 19601)
+++ wp-includes/default-filters.php	(working copy)
@@ -240,6 +240,7 @@
 add_action( 'do_feed_atom',               'do_feed_atom',                            10, 1 );
 add_action( 'do_pings',                   'do_all_pings',                            10, 1 );
 add_action( 'do_robots',                  'do_robots'                                      );
+add_action( 'set_comment_cookies',        'wp_set_comment_cookies',                  10, 2 );
 add_action( 'sanitize_comment_cookies',   'sanitize_comment_cookies'                       );
 add_action( 'admin_print_scripts',        'print_head_scripts',                      20    );
 add_action( 'admin_print_footer_scripts', '_wp_footer_scripts'                             );
