diff --git a/token.tokens.inc b/token.tokens.inc
index 7b2e2cf..2b2a156 100755
--- a/token.tokens.inc
+++ b/token.tokens.inc
@@ -532,6 +532,13 @@ function token_tokens($type, array $tokens, array $data, array $options, Bubblea
 
     // Chained token relationships.
     if (($parent_tokens = \Drupal::token()->findWithPrefix($tokens, 'source')) && $source_node = $node->getUntranslated()) {
+      /**
+       * Get the source node's language code so that specifically for URLs, it
+       * will get the source node's URL.
+       *
+       * @see node.tokens.inc
+       */
+      $options['langcode'] = $source_node->language()->getId();
       $replacements += \Drupal::token()->generate('node', $parent_tokens, ['node' => $source_node], $options, $bubbleable_metadata);
     }
     if (($node_type_tokens = \Drupal::token()->findWithPrefix($tokens, 'content-type')) && $node_type = NodeType::load($node->bundle())) {
