Index: token.tokens.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/token/token.tokens.inc,v
retrieving revision 1.32
diff -u -p -r1.32 token.tokens.inc
--- token.tokens.inc	16 Nov 2010 00:08:50 -0000	1.32
+++ token.tokens.inc	16 Nov 2010 03:06:26 -0000
@@ -181,6 +181,11 @@ function token_token_info() {
     'name' => t('Page number'),
     'description' => t('The page number of the current page when viewing paged lists.'),
   );
+  $info['tokens']['current-page']['arg'] = array(
+    'name' => t('Page argument'),
+    'description' => t("The specific argument of the current page (e.g. 'arg:1' on the page 'node/1' returns '1')."),
+    'dynamic' => TRUE,
+  );
 
   return $info;
 }
@@ -384,6 +389,15 @@ function token_tokens($type, $tokens, ar
           break;
       }
     }
+
+    // Argument tokens.
+    if ($arg_tokens = token_find_with_prefix($tokens, 'arg')) {
+      foreach ($arg_tokens as $name => $original) {
+        if (is_numeric($name) && ($arg = arg($name)) && isset($arg)) {
+          $replacements[$original] = $sanitize ? check_plain($arg) : $arg;
+        }
+      }
+    }
   }
 
   // Entity tokens.
Index: token.test
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/token/token.test,v
retrieving revision 1.26
diff -u -p -r1.26 token.test
--- token.test	16 Nov 2010 02:53:23 -0000	1.26
+++ token.test	16 Nov 2010 03:06:26 -0000
@@ -78,7 +78,7 @@ class TokenTestHelper extends DrupalWebT
 
     foreach ($tokens as $token => $expected) {
       if (!isset($expected)) {
-        $this->assertTrue(!isset($result['values'][$token]), t("Token value for @token was not generated.", array('@token' => $token)));
+        $this->assertTrue(!isset($result['values'][$token]) || $result['values'][$token] === $token, t("Token value for @token was not generated.", array('@token' => $token)));
       }
       elseif (!isset($result['values'][$token])) {
         $this->fail(t('Failed to generate token @token.', array('@token' => $token)));
@@ -539,6 +539,8 @@ class TokenCurrentPageTestCase extends T
       '[current-page:path]' => 'node',
       '[current-page:url]' => url('node', array('absolute' => TRUE)),
       '[current-page:page-number]' => 1,
+      '[current-page:arg:0]' => 'node',
+      '[current-page:arg:1]' => NULL,
     );
     $this->assertPageTokens('', $tokens);
 
@@ -548,6 +550,9 @@ class TokenCurrentPageTestCase extends T
       '[current-page:path]' => 'node-alias',
       '[current-page:url]' => url("node/{$node->nid}", array('absolute' => TRUE)),
       '[current-page:page-number]' => 1,
+      '[current-page:arg:0]' => 'node',
+      '[current-page:arg:1]' => $node->nid,
+      '[current-page:arg:2]' => NULL,
     );
     $this->assertPageTokens("node/{$node->nid}", $tokens);
   }
