Index: wp-includes/comment.php
===================================================================
--- wp-includes/comment.php	(revision 13041)
+++ wp-includes/comment.php	(working copy)
@@ -547,10 +547,11 @@
 		$dupe .= "OR comment_author_email = '$comment_author_email' ";
 	$dupe .= ") AND comment_content = '$comment_content' LIMIT 1";
 	if ( $wpdb->get_var($dupe) ) {
+		$dupe_message = apply_filters('comment_duplicate_message', __('Duplicate comment detected; it looks as though you&#8217;ve already said that!'));
 		if ( defined('DOING_AJAX') )
-			die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
+			die( $dupe_message );
 
-		wp_die( __('Duplicate comment detected; it looks as though you&#8217;ve already said that!') );
+		wp_die( $dupe_message );
 	}
 
 	do_action( 'check_comment_flood', $comment_author_IP, $comment_author_email, $comment_date_gmt );
@@ -607,10 +608,12 @@
 		if ( $flood_die ) {
 			do_action('comment_flood_trigger', $time_lastcomment, $time_newcomment);
 
+			$flood_message = apply_filters('comment_flood_message', __('You are posting comments too quickly.  Slow down.'));
+
 			if ( defined('DOING_AJAX') )
-				die( __('You are posting comments too quickly.  Slow down.') );
+				die( $flood_message );
 
-			wp_die( __('You are posting comments too quickly.  Slow down.'), '', array('response' => 403) );
+			wp_die( $flood_message, '', array('response' => 403) );
 		}
 	}
 }
