diff --git a/core/modules/node/src/NodeGrantDatabaseStorage.php b/core/modules/node/src/NodeGrantDatabaseStorage.php
index bacd952c36..b3aab047ee 100644
--- a/core/modules/node/src/NodeGrantDatabaseStorage.php
+++ b/core/modules/node/src/NodeGrantDatabaseStorage.php
@@ -84,9 +84,11 @@ public function access(NodeInterface $node, $operation, AccountInterface $accoun
     // Only interested for granting in the current operation.
     $query->condition('grant_' . $operation, 1, '>=');
     // Check for grants for this node and the correct langcode.
+    // Use langcode from original node for nodes that are in translating process.
+    $langcode = $node->isNewTranslation() ? $node->getUntranslated()->language()->getId() : $node->language()->getId();
     $nids = $query->andConditionGroup()
       ->condition('nid', $node->id())
-      ->condition('langcode', $node->language()->getId());
+      ->condition('langcode', $langcode);
     // If the node is published, also take the default grant into account. The
     // default is saved with a node ID of 0.
     $status = $node->isPublished();
