diff --git a/includes/Storage/DerivedPageDataUpdater.php b/includes/Storage/DerivedPageDataUpdater.php
index 83d68b30966..4da2f4667b0 100644
--- a/includes/Storage/DerivedPageDataUpdater.php
+++ b/includes/Storage/DerivedPageDataUpdater.php
@@ -68,6 +68,7 @@ use Wikimedia\Assert\Assert;
 use Wikimedia\ObjectCache\WANObjectCache;
 use Wikimedia\Rdbms\IDBAccessObject;
 use Wikimedia\Rdbms\ILBFactory;
+use Wikimedia\Rdbms\SelectQueryBuilder;
 
 /**
  * A handle for managing updates for derived page data on edit, import, purge, etc.
@@ -1770,18 +1771,21 @@ class DerivedPageDataUpdater implements LoggerAwareInterface, PreparedUpdate {
 	 * @param int $revisionId
 	 */
 	private function maybeAddRecreateChangeTag( WikiPage $wikiPage, int $revisionId ) {
-		if ( $this->loadbalancerFactory->getReplicaDatabase()->newSelectQueryBuilder()
-				->select( [ '1' ] )
-				->from( 'logging' )
-				->where( [
-					'log_type' => 'delete',
-					'log_title' => $wikiPage->getTitle()->getDBkey(),
-					'log_namespace' => $wikiPage->getNamespace(),
-				] )->caller( __METHOD__ )->limit( 1 )->fetchField() ) {
-			$this->changeTagsStore->addTags(
-				[ ChangeTags::TAG_RECREATE ],
-				null,
-				$revisionId );
+		$deletionLogEntry = $this->loadbalancerFactory->getReplicaDatabase()->newSelectQueryBuilder()
+			->select( [ '1','log_deleted' ] )
+			->from( 'logging' )
+			->where( [
+				'log_type' => 'delete',
+				'log_title' => $wikiPage->getTitle()->getDBkey(),
+				'log_namespace' => $wikiPage->getNamespace(),
+			] )
+			->orderBy( 'log_timestamp', SelectQueryBuilder::SORT_DESC )
+			->caller( __METHOD__ )->limit( 1 )->fetchRow();
+		if ( $deletionLogEntry && $deletionLogEntry->log_deleted == 0 ) {
+				$this->changeTagsStore->addTags(
+					[ ChangeTags::TAG_RECREATE ],
+					null,
+					$revisionId );
 		}
 	}
 
diff --git a/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php b/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
index 91614f56649..d96f536ba3e 100644
--- a/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
+++ b/tests/phpunit/includes/Storage/DerivedPageDataUpdaterTest.php
@@ -1390,7 +1390,7 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase {
 	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::doUpdates()
 	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::maybeAddRecreateChangeTag
 	 */
-	public function testDoUpdatesTagsEditAsRecreatedWhenDeletedLogEntry() {
+	public function testDoUpdatesTagsEditAsRecreatedWhenDeletionLogEntry() {
 		$page = $this->getPage( __METHOD__ );
 		$title = $this->getTitle( __METHOD__ );
 
@@ -1400,7 +1400,6 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase {
 		$deleteLogEntry = new ManualLogEntry( 'delete', 'delete' );
 		$deleteLogEntry->setPerformer( $this->getTestUser()->getUser() );
 		$deleteLogEntry->setTarget( $title );
-		$deleteLogEntry->setDeleted( LogPage::DELETED_ACTION );
 		$logId = $deleteLogEntry->insert( $this->getDb() );
 		$deleteLogEntry->publish( $logId );
 
@@ -1426,7 +1425,6 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase {
 		$deleteLogEntry = new ManualLogEntry( 'delete', 'delete' );
 		$deleteLogEntry->setPerformer( $this->getTestUser()->getUser() );
 		$deleteLogEntry->setTarget( $title );
-		$deleteLogEntry->setDeleted( LogPage::DELETED_ACTION );
 		$logId = $deleteLogEntry->insert( $this->getDb() );
 		$deleteLogEntry->publish( $logId );
 
@@ -1475,7 +1473,7 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase {
 	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::doUpdates()
 	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::maybeAddRecreateChangeTag
 	 */
-	public function testDoUpdatesDoesNotTagEditAsRecreatedWhenNoDeletedLogEntry() {
+	public function testDoUpdatesDoesNotTagEditAsRecreatedWhenNoDeletionLogEntry() {
 		$page = $this->getPage( __METHOD__ );
 
 		$content = [ SlotRecord::MAIN => new WikitextContent( 'rev ID ver #1: {{REVISIONID}}' ) ];
@@ -1485,6 +1483,72 @@ class DerivedPageDataUpdaterTest extends MediaWikiIntegrationTestCase {
 			$this->getDb(), null, $rev->getId() ) );
 	}
 
+	/**
+	 * See T385792
+	 *
+	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::doUpdates()
+	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::maybeAddRecreateChangeTag
+	 */
+	public function testDoUpdatesDoesNotTagEditAsRecreatedWhenDeletionLogEntryActionHidden() {
+		$page = $this->getPage( __METHOD__ );
+		$title = $this->getTitle( __METHOD__ );
+
+		$content = [ SlotRecord::MAIN => new WikitextContent( 'rev ID ver #1: {{REVISIONID}}' ) ];
+
+		// create a deletion log entry
+		$deleteLogEntry = new ManualLogEntry( 'delete', 'delete' );
+		$deleteLogEntry->setPerformer( $this->getTestUser()->getUser() );
+		$deleteLogEntry->setTarget( $title );
+
+		// hide the target of the deletion log entry
+		$deleteLogEntry->setDeleted( LogPage::DELETED_ACTION );
+
+		$logId = $deleteLogEntry->insert( $this->getDb() );
+		$deleteLogEntry->publish( $logId );
+
+		$rev = $this->createRevision( $page, 'first', $content );
+
+		$this->assertSame( [], $this->getServiceContainer()->getChangeTagsStore()->getTags(
+			$this->getDb(), null, $rev->getId() ) );
+	}
+
+	/**
+	 * See T385792
+	 *
+	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::doUpdates()
+	 * @covers \MediaWiki\Storage\DerivedPageDataUpdater::maybeAddRecreateChangeTag
+	 */
+	public function testDoUpdatesDoesTagEditAsRecreatedWhenDeletionLogEntryActionHiddenButNotMostRecent() {
+		$page = $this->getPage( __METHOD__ );
+		$title = $this->getTitle( __METHOD__ );
+
+		$content = [ SlotRecord::MAIN => new WikitextContent( 'rev ID ver #1: {{REVISIONID}}' ) ];
+
+		// create a deletion log entry
+		$deleteLogEntry = new ManualLogEntry( 'delete', 'delete' );
+		$deleteLogEntry->setPerformer( $this->getTestUser()->getUser() );
+		$deleteLogEntry->setTarget( $title );
+
+		// hide the target of the deletion log entry
+		$deleteLogEntry->setDeleted( LogPage::DELETED_ACTION );
+
+		$logId = $deleteLogEntry->insert( $this->getDb() );
+		$deleteLogEntry->publish( $logId );
+
+		// create a deletion log entry
+		$deleteLogEntry = new ManualLogEntry( 'delete', 'delete' );
+		$deleteLogEntry->setPerformer( $this->getTestUser()->getUser() );
+		$deleteLogEntry->setTarget( $title );
+
+		$logId = $deleteLogEntry->insert( $this->getDb() );
+		$deleteLogEntry->publish( $logId );
+
+		$rev = $this->createRevision( $page, 'first', $content );
+
+		$this->assertSame( [ 'mw-recreated' ], $this->getServiceContainer()->getChangeTagsStore()->getTags(
+			$this->getDb(), null, $rev->getId() ) );
+	}
+
 	public static function provideEnqueueRevertedTagUpdateJob() {
 		return [
 			'not patrolled' => [ true, 0, 0 ],
