diff --git a/twitter.pages.inc b/twitter.pages.inc
index 91a1731..78a140f 100644
--- a/twitter.pages.inc
+++ b/twitter.pages.inc
@@ -11,7 +11,7 @@ function twitter_admin_form() {
     '#title' => t('OAuth Settings'),
     '#description' => t(''),
     '#access' => module_exists('oauth'),
-    '#description' => t('To enable OAuth based access for twitter, you must <a href="@url">register your application</a> with twitter and add the provided keys here.', array('@url' => 'https://twitter.com/apps/new')),
+    '#description' => t('To enable OAuth based access for twitter, you must <a href="@url">register your application</a> with twitter and add the provided keys here.', array('@url' => 'https://dev.twitter.com/apps/new')),
   );
 
   $form['oauth']['callback_url'] = array(
diff --git a/twitter_post/twitter_post.module b/twitter_post/twitter_post.module
index 18f29e0..9021d1f 100644
--- a/twitter_post/twitter_post.module
+++ b/twitter_post/twitter_post.module
@@ -58,7 +58,21 @@ function twitter_post_form_alter(&$form, $form_state, $form_id) {
     );
     $form['twitter'] += $twitter_form;
     $form['twitter']['status']['#default_value'] = variable_get('twitter_post_default_format', 'New post: !title !tinyurl');
-    $form['twitter']['status']['#description'] = t('The given text will be posted to twitter.com. You can use !url, !url-alias, !tinyurl, !title and !user as replacement text.');
+    $form['twitter']['status']['#description'] = t('The given text will be posted to twitter.com. You can use !url, !url-alias, !tinyurl, !title and !user as replacement text.  If the token module is enabled, you may also choose from the tokens listed in the replacement patterns section.');
+    if (module_exists('token')) {
+      $form['twitter']['token_help'] = array(
+      	'#title' => t('Replacement patterns'),
+      	'#type' => 'fieldset',
+      	'#collapsible' => TRUE,
+      	'#collapsed' => TRUE,
+      	'#description' => t('Prefer raw-text replacements for text to avoid problems with HTML entities!'),
+      ); 
+
+      $form['twitter']['token_help']['help'] = array(
+      	'#value' => theme('token_help', 'node'),
+      );
+    }
+  
   }
 }
 
@@ -87,6 +101,11 @@ function twitter_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
         }
 
         $status = strtr($node->twitter['status'], $replacements);
+
+        // If token module is available, process status to do the token replacement
+        if (module_exists('token')) {
+          $status = token_replace($status, 'node', $node);
+        }
         try {
           $result = twitter_set_status($twitter_account, $status);
           drupal_set_message(t('Successfully posted to Twitter'));
diff --git a/twitter_post/twitter_post.pages.inc b/twitter_post/twitter_post.pages.inc
index bac161a..3784116 100644
--- a/twitter_post/twitter_post.pages.inc
+++ b/twitter_post/twitter_post.pages.inc
@@ -15,9 +15,21 @@ function twitter_post_admin_settings() {
     '#type' => 'textfield',
     '#title' => t('Default format string'),
     '#maxlength' => 140,
-    '#description' => t('The given text will be posted to twitter.com. You can use !url, !url-alias, !tinyurl, !title, and !user as replacement text.'),
+    '#description' => t('The given text will be posted to twitter.com. You can use !url, !url-alias, !tinyurl, !title, and !user as replacement text.  If the token module is enabled, you may also choose from the tokens listed in the replacement patterns section.'),
     '#default_value' => variable_get('twitter_post_default_format', 'New post: !title !tinyurl'),
   );
+  if (module_exists('token')) {
+    $form['view']['token_help'] = array(
+      '#title' => t('Replacement patterns'),
+      '#type' => 'fieldset',
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+      '#description' => t('Prefer raw-text replacements for text to avoid problems with HTML entities!'),
+      ); 
 
+    $form['view']['token_help']['help'] = array(
+      '#value' => theme('token_help', 'node'),
+      );
+  }
   return system_settings_form($form);  
 }
