diff --git a/includes/simplenews.admin.inc b/includes/simplenews.admin.inc
index 63ee28b..3728e78 100644
--- a/includes/simplenews.admin.inc
+++ b/includes/simplenews.admin.inc
@@ -543,15 +543,18 @@ function simplenews_admin_category_form($form, &$form_state, $edit = array()) {
     '#title' => t('Newsletter subject'),
     '#collapsible' => FALSE,
   );
-  $form['simplenews_subject']['token_help'] = array(
-    '#title' => t('Replacement patterns'),
-    '#type' => 'fieldset',
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
-  );
-  $form['simplenews_subject']['token_help']['help'] = array(
-    '#markup' => _simplenews_get_token_info(array('simplenews-category', 'node')),
-  );
+  if (module_exists('token')) {
+    $form['simplenews_subject']['token_help'] = array(
+      '#title' => t('Replacement patterns'),
+      '#type' => 'fieldset',
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+    );
+    $form['simplenews_subject']['token_help']['browser'] = array(
+      '#theme' => 'token_tree',
+      '#token_types' => array('simplenews-category', 'node'),
+    );
+  }
 
   $form['simplenews_subject']['email_subject'] = array(
     '#type' => 'textfield',
@@ -1527,8 +1530,9 @@ function simplenews_admin_settings_subscription($form, &$form_state) {
     '#collapsible' => TRUE,
     '#collapsed' => TRUE,
   );
-  $form['simplenews_subscription']['subscription_mail']['token_help']['help'] = array(
-    '#markup' => _simplenews_get_token_info(array('simplenews-subscriber', 'simplenews-list', 'site')),
+  $form['simplenews_subscription']['subscription_mail']['token_help']['browser'] = array(
+      '#theme' => 'token_tree',
+      '#token_types' => array('simplenews-category', 'node'),
   );
 
   $form['simplenews_subscription']['subscription_mail']['simplenews_confirm_subscribe_subject'] = array(
diff --git a/simplenews.module b/simplenews.module
index 210fae1..5fd6b03 100644
--- a/simplenews.module
+++ b/simplenews.module
@@ -767,17 +767,20 @@ function simplenews_form_alter(&$form, &$form_state, $form_id) {
  * @todo
  */
 function _simplenews_node_form(&$form, $form_state) {
-  $form['simplenews_token_help'] = array(
-    '#title' => t('Replacement patterns'),
-    '#type' => 'fieldset',
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
-    '#description' => t('These tokens can be used in all text fields and will be replaced on-screen and in the email. Note that receiver-* tokens are not suitable for on-screen use.'),
-  );
+  if (module_exists('token')) {
+    $form['simplenews_token_help'] = array(
+      '#title' => t('Replacement patterns'),
+      '#type' => 'fieldset',
+      '#collapsible' => TRUE,
+      '#collapsed' => TRUE,
+      '#description' => t('These tokens can be used in all text fields and will be replaced on-screen and in the email. Note that receiver-* tokens are not suitable for on-screen use.'),
+    );
 
-  $form['simplenews_token_help']['help'] = array(
-    '#markup' => _simplenews_get_token_info(array('simplenews-newsletter', 'simplenews-category', 'site')),
-  );
+    $form['simplenews_token_help']['browser'] = array(
+      '#theme' => 'token_tree',
+      '#token_types' => array('simplenews-newsletter', 'simplenews-category'),
+    );
+  }
 }
 
 /**
@@ -2471,38 +2474,6 @@ function simplenews_newsletter_delete($newsletter) {
 }
 
 /**
- * Return HTML formatted list of token info.
- *
- * @param $modules
- *   Array of module names
- * @return string
- *   Formatted Token information
- *
- * @todo Add Token types description.
- * @todo Use Theme function.
- * @todo Is this available in Core?
- */
-function _simplenews_get_token_info($modules) {
-  $tokens = array();
-  $token_info = token_info();
-  foreach ($modules as $module) {
-    if (isset($token_info['tokens'][$module])) {
-      foreach ($token_info['tokens'][$module] as $key => $info) {
-        $tokens["[$module:$key]"] = $info['description'];
-      }
-    }
-  }
-
-  $output = '<dl>';
-  foreach ($tokens as $name => $description) {
-    $output .= '<dt>' . $name . '</dt>';
-    $output .= '<dd>' . $description . '</dd>';
-  }
-  $output .= "</dl>\n";
-  return $output;
-}
-
-/**
  * Implementation of hook_token_info().
  */
 function simplenews_token_info() {
