diff --git wp-includes/comment.php wp-includes/comment.php
index d3d8db6..270cafa 100644
--- wp-includes/comment.php
+++ wp-includes/comment.php
@@ -1384,11 +1384,15 @@ function wp_new_comment( $commentdata ) {
 	$parent_status = ( 0 < $commentdata['comment_parent'] ) ? wp_get_comment_status($commentdata['comment_parent']) : '';
 	$commentdata['comment_parent'] = ( 'approved' == $parent_status || 'unapproved' == $parent_status ) ? $commentdata['comment_parent'] : 0;
 
-	$commentdata['comment_author_IP'] = preg_replace( '/[^0-9a-fA-F:., ]/', '',$_SERVER['REMOTE_ADDR'] );
-	$commentdata['comment_agent']     = isset( $_SERVER['HTTP_USER_AGENT'] ) ? substr( $_SERVER['HTTP_USER_AGENT'], 0, 254 ) : '';
-
-	$commentdata['comment_date']     = current_time('mysql');
-	$commentdata['comment_date_gmt'] = current_time('mysql', 1);
+	if ( ! isset( $commentdata['comment_author_IP'] ) )
+		$commentdata['comment_author_IP'] = preg_replace( '/[^0-9a-fA-F:., ]/', '',$_SERVER['REMOTE_ADDR'] );
+	if ( ! isset( $commentdata['comment_agent'] ) )
+		$commentdata['comment_agent'] = isset( $_SERVER['HTTP_USER_AGENT'] ) ? substr( $_SERVER['HTTP_USER_AGENT'], 0, 254 ) : '';
+
+	if ( ! isset( $commentdata['comment_date'] ) )
+		$commentdata['comment_date'] = current_time( 'mysql' );
+	if ( ! isset( $commentdata['comment_date_gmt'] ) )
+		$commentdata['comment_date_gmt'] = current_time( 'mysql', 1 );
 
 	$commentdata = wp_filter_comment($commentdata);
 
