Index: src/wp-includes/comment.php
===================================================================
--- src/wp-includes/comment.php	(revision 36169)
+++ src/wp-includes/comment.php	(working copy)
@@ -1939,7 +1939,7 @@
 
 	$comment_ID = $data['comment_ID'];
 	$comment_post_ID = $data['comment_post_ID'];
-	$keys = array( 'comment_post_ID', 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_type', 'comment_parent', 'user_id' );
+	$keys = array( 'comment_post_ID', 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_type', 'comment_parent', 'user_id', 'comment_agent', 'comment_author_IP' );
 	$data = wp_array_slice_assoc( $data, $keys );
 	$rval = $wpdb->update( $wpdb->comments, $data, compact( 'comment_ID' ) );
 
Index: tests/phpunit/tests/comment.php
===================================================================
--- tests/phpunit/tests/comment.php	(revision 36169)
+++ tests/phpunit/tests/comment.php	(working copy)
@@ -636,4 +636,39 @@
 
 		$this->assertTrue( $draft_comment_status );
 	}
+
+
+	public function test_wp_update_comment_author_id_and_agent() {
+
+		$default_data = array(
+			'comment_post_ID'      => self::$post_id,
+			'comment_author'       => rand_str(),
+			'comment_author_IP'    => '192.168.0.1',
+			'comment_agent'        => 'WRONG_AGENT',
+			'comment_author_url'   => '',
+			'comment_author_email' => '',
+			'comment_type'         => '',
+			'comment_content'      => rand_str(),
+		);
+
+		$comment_id = wp_new_comment( $default_data );
+
+		// Confirm that the IP and Agent are correct on initial save.
+		$save = get_comment( $comment_id );
+		$this->assertEquals( $default_data['comment_author_IP'], $save->comment_author_IP );
+		$this->assertEquals( $default_data['comment_agent'], $save->comment_agent );
+
+		// Update the comment.
+		wp_update_comment( array(
+			'comment_ID'        => $comment_id,
+			'comment_author_IP' => '111.111.1.1',
+			'comment_agent'     => 'SHIELD_AGENT',
+			)
+		);
+
+		// Retrieve and check the new values.
+		$updated = get_comment( $comment_id );
+		$this->assertEquals( '111.111.1.1', $updated->comment_author_IP );
+		$this->assertEquals( 'SHIELD_AGENT', $updated->comment_agent );
+	}
 }
