diff --git a/src/Tests/TokenCurrentPageTest.php b/src/Tests/TokenCurrentPageTest.php
index cd8ac372..672f9e48 100644
--- a/src/Tests/TokenCurrentPageTest.php
+++ b/src/Tests/TokenCurrentPageTest.php
@@ -41,10 +41,11 @@ function testCurrentPageTokens() {
 
     $this->drupalCreateContentType(array('type' => 'page'));
     $node = $this->drupalCreateNode(array('title' => 'Node title', 'path' => array('alias' => '/node-alias')));
+    $query =  array('foo' => 'bar');
     $tokens = array(
       '[current-page:title]' => 'Node title',
       '[current-page:url]' => $node->url('canonical', array('absolute' => TRUE)),
-      '[current-page:url:absolute]' => $node->url('canonical', array('absolute' => TRUE)),
+      '[current-page:url:absolute]' => $node->url('canonical', array('absolute' => TRUE, 'query' => $query)),
       '[current-page:url:relative]' => $node->url(),
       '[current-page:url:alias]' => '/node-alias',
       '[current-page:url:args:value:0]' => 'node-alias',
@@ -54,13 +55,13 @@ function testCurrentPageTokens() {
       '[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, array(), array('url_options' => array('query' => array('foo' => 'bar'))));
+    $this->assertPageTokens("/node/{$node->id()}", $tokens, array(), array('url_options' => array('query' => $query)));
   }
 }
diff --git a/token.tokens.inc b/token.tokens.inc
index f6ad6191..398637be 100644
--- a/token.tokens.inc
+++ b/token.tokens.inc
@@ -784,7 +784,7 @@ function token_tokens($type, array $tokens, array $data = array(), array $option
 
     // Chained token relationships.
     if ($url_tokens = \Drupal::token()->findWithPrefix($tokens, 'url')) {
-      $url = Url::fromRoute('<current>');
+      $url = Url::fromRoute('<current>', [], ['query' => \Drupal::request()->query->all()]);
       $replacements += \Drupal::token()->generate('url', $url_tokens, array('url' => $url), $options, $bubbleable_metadata);
     }
   }
