Index: src/wp-includes/comment.php
===================================================================
--- src/wp-includes/comment.php	(revision 31072)
+++ src/wp-includes/comment.php	(working copy)
@@ -2202,6 +2202,12 @@
 	if ( empty( $comment ) ) {
 		return 0;
 	}
+
+	// Make sure that the comment post ID is valid (if specified).
+	if ( isset( $commentarr['comment_post_ID'] ) && !get_post($commentarr['comment_post_ID']) ) {
+		return 0;
+	}
+
 	// Escape data pulled from DB.
 	$comment = wp_slash($comment);
 
@@ -2236,7 +2242,7 @@
 
 	$comment_ID = $data['comment_ID'];
 	$comment_post_ID = $data['comment_post_ID'];
-	$keys = array( 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_parent' );
+	$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_parent' );
 	$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 31072)
+++ tests/phpunit/tests/comment.php	(working copy)
@@ -6,6 +6,7 @@
 class Tests_Comment extends WP_UnitTestCase {
 	function test_wp_update_comment() {
 		$post = $this->factory->post->create_and_get( array( 'post_title' => 'some-post', 'post_type' => 'post' ) );
+		$post2 = $this->factory->post->create_and_get( array( 'post_title' => 'some-post-2', 'post_type' => 'post' ) );
 		$comments = $this->factory->comment->create_post_comments( $post->ID, 5 );
 		$result = wp_update_comment( array( 'comment_ID' => $comments[0], 'comment_parent' => $comments[1] ) );
 		$this->assertEquals( 1, $result );
@@ -13,6 +14,9 @@
 		$this->assertEquals( $comments[1], $comment->comment_parent );
 		$result = wp_update_comment( array( 'comment_ID' => $comments[0], 'comment_parent' => $comments[1] ) );
 		$this->assertEquals( 0, $result );
+		$result = wp_update_comment( array( 'comment_ID' => $comments[0], 'comment_post_ID' => $post2->ID ) );
+		$comment = get_comment( $comments[0] );
+		$this->assertEquals( $post2->ID, $comment->comment_post_ID );
 	}
 
 	public function test_get_approved_comments() {
