diff --git a/src/backend/replication/logical/logicalctl.c b/src/backend/replication/logical/logicalctl.c
index 14cae7f5cd9..8bdb718812f 100644
--- a/src/backend/replication/logical/logicalctl.c
+++ b/src/backend/replication/logical/logicalctl.c
@@ -304,8 +304,10 @@ EnsureLogicalDecodingEnabled(void)
 		 * UpdateLogicalDecodingStatusEndOfRecovery() upon promotion. We
 		 * cannot enable logical decoding during recovery, so raise an error.
 		 *
-		 * Our already-visible slot guarantees that this check doesn't miss a
-		 * concurrent deactivation: UpdateLogicalDecodingStatusEndOfRecovery()
+		 * Our slot is already visible in shared memory (its in_use flag is
+		 * set, so a concurrent deactivation's slot invalidation can find it),
+		 * which guarantees that this check doesn't miss a concurrent
+		 * deactivation: UpdateLogicalDecodingStatusEndOfRecovery()
 		 * won't disable logical decoding as it sees our valid slot, and
 		 * replaying a status change record after this check invalidates our
 		 * slot, so this slot creation fails afterwards anyway (by a recovery
