diff --git a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
index f98c373..49d8080 100644
--- a/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
+++ b/core/modules/system/src/Tests/System/TokenReplaceUnitTest.php
@@ -101,6 +101,8 @@ public function testSystemSiteTokenReplacement() {
       ->set('mail', 'simpletest@example.com')
       ->save();
 
+    // Set a GET param.
+    \Drupal::request()->query->add(array('page' => 1));
 
     // Generate and test sanitized tokens.
     $tests = array();
@@ -110,6 +112,7 @@ public function testSystemSiteTokenReplacement() {
     $tests['[site:url]'] = \Drupal::url('<front>', [], $url_options);
     $tests['[site:url-brief]'] = preg_replace(array('!^https?://!', '!/$!'), '', \Drupal::url('<front>', [], $url_options));
     $tests['[site:login-url]'] = \Drupal::url('user.page', [], $url_options);
+    $tests['[site:page-number]'] = preg_match('/^\d+/', \Drupal::request()->query->get('page'), $match) ? $match[0] + 1 : '';
 
     // Test to make sure that we generated something for each token.
     $this->assertFalse(in_array(0, array_map('strlen', $tests)), 'No empty tokens generated.');
diff --git a/core/modules/system/system.tokens.inc b/core/modules/system/system.tokens.inc
index 20d5ec1..4cc418f 100644
--- a/core/modules/system/system.tokens.inc
+++ b/core/modules/system/system.tokens.inc
@@ -48,6 +48,10 @@ function system_token_info() {
     'name' => t("Login page"),
     'description' => t("The URL of the site's login page."),
   );
+  $info['page-number'] = array(
+    'name' => t('Page number'),
+    'description' => t('The page number for pages that contain paged lists'),
+  );
 
   // Date related tokens.
   $date['short'] = array(
@@ -130,6 +134,10 @@ function system_tokens($type, $tokens, array $data = array(), array $options = a
         case 'login-url':
           $replacements[$original] = \Drupal::url('user.page', [], $url_options);
           break;
+
+        case 'page-number':
+          $replacements[$original] = preg_match('/^\d+/', \Drupal::request()->query->get('page'), $match) ? $match[0] + 1 : '';
+          break;
       }
     }
   }
