diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php
index c0e5e1fc70..a2ff106a5a 100644
--- a/src/wp-includes/post.php
+++ b/src/wp-includes/post.php
@@ -3802,6 +3802,8 @@ function wp_insert_post( $postarr, $wp_error = false ) {
 		} else {
 			$post_date_gmt = '0000-00-00 00:00:00';
 		}
+	} elseif ( in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) ) {
+		$post_date_gmt = '0000-00-00 00:00:00';
 	} else {
 		$post_date_gmt = $postarr['post_date_gmt'];
 	}
diff --git a/tests/phpunit/tests/ajax/QuickEdit.php b/tests/phpunit/tests/ajax/QuickEdit.php
index 2369930cfb..6542ee5808 100644
--- a/tests/phpunit/tests/ajax/QuickEdit.php
+++ b/tests/phpunit/tests/ajax/QuickEdit.php
@@ -83,4 +83,57 @@ class Tests_Ajax_QuickEdit extends WP_Ajax_UnitTestCase {
 		$post_terms_2 = wp_get_object_terms( $post->ID, 'wptests_tax_2' );
 		$this->assertSameSets( array( $t2 ), wp_list_pluck( $post_terms_2, 'term_id' ) );
 	}
+
+	/**
+	 * When updating a draft in quick edit mode, it should not set the publish date of the post when this one will be published.
+	 *
+	 * @ticket 19907
+	 */
+	public function test_quick_edit_draft_should_not_set_publish_date() {
+		// Become an administrator.
+		$this->_setRole( 'administrator' );
+
+		$user = get_current_user_id();
+
+		$post = self::factory()->post->create_and_get(
+			array(
+				'post_status' => 'draft',
+				'post_author' => $user,
+			)
+		);
+
+		$this->assertSame( 'draft', $post->post_status );
+
+		$this->assertEquals( '0000-00-00 00:00:00', $post->post_date_gmt );
+
+		// Set up a request.
+		$_POST['_inline_edit'] = wp_create_nonce( 'inlineeditnonce' );
+		$_POST['post_ID']      = $post->ID;
+		$_POST['post_type']    = 'post';
+		$_POST['content']      = 'content test';
+		$_POST['excerpt']      = 'excerpt test';
+		$_POST['_status']      = $post->post_status;
+		$_POST['post_status']  = $post->post_status;
+		$_POST['post_author']  = $user;
+		$_POST['screen']       = 'edit-post';
+		$_POST['post_view']    = 'list';
+		$_POST['edit_date']    = true;
+		$_POST['mm']           = '09';
+		$_POST['jj']           = 11;
+		$_POST['aa']           = 2020;
+		$_POST['hh']           = 19;
+		$_POST['mn']           = 20;
+		$_POST['ss']           = 11;
+
+		// Make the request.
+		try {
+			$this->_handleAjax( 'inline-save' );
+		} catch ( WPAjaxDieContinueException $e ) {
+			unset( $e );
+		}
+
+		$post = get_post( $post->ID );
+
+		$this->assertEquals( '0000-00-00 00:00:00', $post->post_date_gmt );
+	}
 }
