diff --git a/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php b/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php
index 2770cfec6..b76609657 100644
--- a/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php
+++ b/modules/contrib/token/tests/src/Functional/TokenCurrentPageTest.php
@@ -44,26 +44,27 @@ function testCurrentPageTokens() {
 
     $this->drupalCreateContentType(['type' => 'page']);
     $node = $this->drupalCreateNode(['title' => 'Node title', 'path' => ['alias' => '/node-alias']]);
+    $query = ['foo' => 'bar'];
     $tokens = [
       '[current-page:title]' => 'Node title',
-      '[current-page:url]' => $node->toUrl('canonical', ['absolute' => TRUE])->toString(),
-      '[current-page:url:absolute]' => $node->toUrl('canonical', ['absolute' => TRUE])->toString(),
-      '[current-page:url:relative]' => $node->toUrl()->toString(),
+      '[current-page:url]' => $node->toUrl('canonical', ['absolute' => TRUE, 'query' => $query])->toString(),
+      '[current-page:url:absolute]' => $node->toUrl('canonical', ['absolute' => TRUE, 'query' => $query])->toString(),
+      '[current-page:url:relative]' => $node->toUrl('canonical', ['query' => $query])->toString(),
       '[current-page:url:alias]' => '/node-alias',
       '[current-page:url:args:value:0]' => 'node-alias',
       '[current-page:url:args:value:1]' => NULL,
-      '[current-page:url:unaliased]' => $node->toUrl('canonical', ['absolute' => TRUE, 'alias' => TRUE])->toString(),
+      '[current-page:url:unaliased]' => $node->toUrl('canonical', ['absolute' => TRUE, 'alias' => TRUE, 'query' => $query])->toString(),
       '[current-page:url:unaliased:args:value:0]' => 'node',
       '[current-page:url:unaliased:args:value:1]' => $node->id(),
       '[current-page:url:unaliased:args:value:2]' => NULL,
       '[current-page:page-number]' => 1,
-      '[current-page:query:foo]' => 'bar',
+      '[current-page:query:foo]' => $query['foo'],
       '[current-page:query:bar]' => NULL,
       // Deprecated tokens
       '[current-page:arg:0]' => 'node',
       '[current-page:arg:1]' => 1,
       '[current-page:arg:2]' => NULL,
     ];
-    $this->assertPageTokens("/node/{$node->id()}", $tokens, [], ['url_options' => ['query' => ['foo' => 'bar']]]);
+    $this->assertPageTokens("/node/{$node->id()}", $tokens, [], ['url_options' => ['query' => $query]);
   }
 }
diff --git a/modules/contrib/token/token.tokens.inc b/modules/contrib/token/token.tokens.inc
index 1d0874398..10c0fcc93 100755
--- a/modules/contrib/token/token.tokens.inc
+++ b/modules/contrib/token/token.tokens.inc
@@ -758,7 +758,9 @@ function token_tokens($type, array $tokens, array $data = [], array $options = [
         case 'url':
           $bubbleable_metadata->addCacheContexts(['url.path']);
           try {
-            $url = Url::createFromRequest($request)->setOptions($url_options);
+            $url = Url::createFromRequest($request)
+              ->setOptions($url_options)
+              ->setOption('query', $request->query->all());
           }
           catch (\Exception $e) {
             // Url::createFromRequest() can fail, e.g. on 404 pages.
@@ -815,7 +817,9 @@ function token_tokens($type, array $tokens, array $data = [], array $options = [
     if ($url_tokens = \Drupal::token()->findWithPrefix($tokens, 'url')) {
       $url = NULL;
       try {
-        $url = Url::createFromRequest($request)->setOptions($url_options);
+        $url = Url::createFromRequest($request)
+          ->setOptions($url_options)
+          ->setOption('query', $request->query->all());
       }
       catch (\Exception $e) {
         // Url::createFromRequest() can fail, e.g. on 404 pages.
