Index: src/wp-includes/query.php
===================================================================
--- src/wp-includes/query.php	(revision 38162)
+++ src/wp-includes/query.php	(working copy)
@@ -3018,6 +3018,10 @@
 			}
 		}
 
+		if ( ! empty( $orderby ) and $orderby == "$wpdb->posts.post_date " . $q['order'] ) {
+			$orderby = "$wpdb->posts.post_date " . $q['order'].  ", $wpdb->posts.ID " . $q['order'];
+		}
+
 		// Order search results by relevance only when another "orderby" is not specified in the query.
 		if ( ! empty( $q['s'] ) ) {
 			$search_orderby = '';
Index: tests/phpunit/tests/query/results.php
===================================================================
--- tests/phpunit/tests/query/results.php	(revision 38162)
+++ tests/phpunit/tests/query/results.php	(working copy)
@@ -718,4 +718,28 @@
 		$feed_comment = $this->q->next_comment();
 		$this->assertEquals( $comment_id, $feed_comment->comment_ID );
 	}
+
+
+	public function test_posts_order_for_same_date() {
+		$this->factory->post->create_many( 100, array(
+			'post_date' => '2016-01-01 00:00:00'
+		) );
+
+		$expected = array_map( array( $this, 'get_post_id' ), $this->q->query( array() ) );
+		$actual   = array_map( array( $this, 'get_post_id' ), $this->q->query( array(
+			'post_status' => array(
+				'private',
+				'publish'
+			)
+		) ) );
+		$this->assertSame( $expected, $actual );
+	}
+
+	/**
+	 * @param WP_Post $post
+	 * @return int
+	 */
+	public function get_post_id( $post ) {
+		return $post->ID;
+	}
 }
