diff --git a/domain.admin.inc b/domain.admin.inc
index 45330cc..3f910b5 100644
--- a/domain.admin.inc
+++ b/domain.admin.inc
@@ -360,14 +360,17 @@ function domain_configure_form($form, &$form_state, $user_submitted = FALSE) {
     '#collapsible' => TRUE,
     '#collapsed' => TRUE
   );
-  // Get the available tokens.
-  $tokens = domain_get_tokens();
   $form['domain_classes']['domain_classes'] = array(
     '#type' => 'textarea',
     '#rows' => 5,
     '#cols' => 40,
     '#default_value' => variable_get('domain_classes', 'domain-[current-domain:machine_name]'),
-    '#description' => t('Add the following classes to the <em>body</em> tag of every page. Enter one class per line. The following token replacements are allowed: !tokens', array('!tokens' => theme('item_list', array('items' => $tokens)))),
+    '#description' => t('Add the following classes to the <em>body</em> tag of every page. Enter one class per line. This field supports tokens.'),
+  );
+  $form['domain_classes']['token_help'] = array(
+    '#theme' => 'token_tree',
+    '#token_types' => array('domain'),
+    '#global_types' => FALSE,
   );
 
   // Allow submodules to add elements to the form.
@@ -750,7 +753,7 @@ function domain_batch($action = NULL) {
   if (empty($domains)) {
     return t('There are no domains configured for this site.');
   }
-  
+
   $batch = domain_batch_actions();
   // We must have some actions, otherwise, no point.
   if (empty($batch)) {
diff --git a/domain.module b/domain.module
index 2a699da..cd002eb 100644
--- a/domain.module
+++ b/domain.module
@@ -3136,7 +3136,7 @@ function domain_reassign($old_domain, $new_domain, $table) {
     }
     $query->execute();
   }
-  
+
   // Let other modules act.
   module_invoke_all('domain_reassign', $old_domain, $new_domain, $table);
 
@@ -3206,7 +3206,7 @@ function domain_machine_name($subdomain) {
  *  Boolean TRUE or FALSE.
  */
 function domain_check_machine_name($machine_name) {
-  return (bool) db_query("SELECT COUNT(1) FROM {domain} WHERE machine_name = :machine_name", 
+  return (bool) db_query("SELECT COUNT(1) FROM {domain} WHERE machine_name = :machine_name",
     array(':machine_name' => $machine_name)
     )->fetchField();
 }
@@ -3495,16 +3495,8 @@ function domain_page_classes() {
  * Implements hook_filter_info().
  */
 function domain_filter_info() {
-  $filters['domain'] = array(
-    'title' => t('Insert domain-specific placeholders'), 
-    'description' => t('Allows you to add domain-sensitive variables to content.'), 
-    'process callback' => 'domain_filter_process',
-    'tips callback' => 'domain_filter_tips',
-    'cache' => FALSE, // These cannot be cached.
-    'weight' => 0,
-  );
   $filters['domain_url'] = array(
-    'title' => t('Insert domain-sensitive URLs'), 
+    'title' => t('Insert domain-sensitive URLs'),
     'process callback' => 'domain_url_filter_process',
     'tips callback' => 'domain_url_filter_tips',
     'cache' => FALSE, // These cannot be cached.
@@ -3514,61 +3506,6 @@ function domain_filter_info() {
 }
 
 /**
- * Implements hook_filter_FILTER_tips() magic callback.
- */
-function domain_filter_tips($filter, $format, $long) {
-  $tokens = domain_get_tokens();
-  if ($long) {
-    return t('The following site-specific token replacements are allowed: !tokens', array('!tokens' => theme('item_list', array('items' => $tokens))));
-  }
-  else {
-    $fieldset = array(
-      '#collapsed' => TRUE,
-      '#collapsible' => TRUE,
-      '#title' => t('Domain tokens'),
-      '#children' => theme('item_list', array('items' => $tokens)),
-    );
-    return t('The following site-specific token replacements are allowed: !tokens', array('!tokens' => theme('fieldset', array('element' => $fieldset))));
-  }
-}
-
-/**
- * Implements hook_filter_FILTER_process() magic callback.
- */
-function domain_filter_process($text, $filter, $format, $langcode, $cache, $cache_id) {
-  $tokens = domain_get_tokens();
-  $patterns = array_keys($tokens);
-  foreach ($patterns as $pattern) {
-    $match = "[$pattern]";
-    $text = preg_replace(preg_quote("/$match/"), token_replace($match), $text);
-  }
-  return $text;
-}
-
-/**
- * Returns all domain module tokens in a human-readable array.
- *
- * The array key is the token string (without brackets) and the value is the
- * token string : description.
- *
- * @return
- *  An array of token data formatted as explained above.
- */
-function domain_get_tokens($prefixes = array()) {
-  if (empty($prefixes)) {
-    $prefixes = array('current-domain', 'default-domain');
-  }
-  module_load_include('inc', 'domain', 'domain.tokens');
-  $info = domain_token_info();
-  foreach($prefixes as $prefix) {
-    foreach($info['tokens']['domain'] as $token => $data) {
-      $tokens["$prefix:$token"] = t('!token : !description', array('!token' => "[$prefix:$token]", '!description' => $data['description']));
-    }
-  }
-  return $tokens;
-}
-
-/**
  * Implements hook_filter_FILTER_process() magic callback.
  */
 function domain_url_filter_process($text, $filter, $format, $langcode, $cache, $cache_id) {
diff --git a/tests/domain.test b/tests/domain.test
index d9765bf..5eaf311 100644
--- a/tests/domain.test
+++ b/tests/domain.test
@@ -656,7 +656,7 @@ class DomainCacheTest extends DomainTestCase {
     // Fill the cache.
     $this->drupalGet($domains['one']['path'], $options);
 
-    // Check the output for our body classes. 
+    // Check the output for our body classes.
     // Note that we set the domain to get the right variables.
     domain_set_domain($domains['one']['domain_id'], TRUE);
     $domain_classes2 = domain_page_classes();
@@ -742,41 +742,6 @@ class DomainFilterTest extends DomainTestCase {
     parent::setUp($list);
   }
 
-  function testDomainFilters() {
-    // Create domains.
-    $domains = $this->domainCreateDomains();
-    // Check tokens.
-    $tokens = domain_get_tokens();
-    $this->assertTrue(!empty($tokens), t('Domain tokens exist.'));
-    // Check a token on all domains.
-    // TODO: Loop through and check all tokens.
-    foreach (domain_domains(TRUE) as $key => $domain) {
-      domain_set_domain($key);
-      $text = $this->randomString(255);
-      $filtertext = '---[current-domain:id]---';
-      $text .= $filtertext;
-      $text .= $this->randomString(255);
-      $this->assertTrue(substr_count($text, $filtertext) > 0, t('Sample text contains domain token: @token.', array('@token' => $filtertext)));
-      $newtext = domain_filter_process($text, NULL, NULL, NULL, NULL, NULL);
-      $this->assertTrue(substr_count($newtext, $filtertext) == 0, t('Sample text does not contain domain token: @token.', array('@token' => $filtertext)));
-      $_domain = domain_get_domain();
-      $this->assertTrue(substr_count($newtext, '---' . $_domain['domain_id'] . '---') > 0, t('Sample text contains domain value: @value.', array('@value' => $_domain['domain_id'])));
-    }
-    // Now test the default domain filter while still on another domain.
-    // TODO: This code is crufty and needs to be simplified.
-    $text = $this->randomString(255);
-    $filtertext = '---[default-domain:id]---';
-    $text .= $filtertext;
-    $text .= $this->randomString(255);
-    $this->assertTrue(substr_count($text, $filtertext) > 0, t('Sample text contains domain token: @token.', array('@token' => $filtertext)));
-    $newtext = domain_filter_process($text, NULL, NULL, NULL, NULL, NULL);
-    $this->assertTrue(substr_count($newtext, $filtertext) == 0, t('Sample text does not contain domain token: @token.', array('@token' => $filtertext)));
-    $_domain = domain_default();
-    $this->assertTrue(substr_count($newtext, '---' . $_domain['domain_id'] . '---') > 0, t('Sample text contains domain value: @value.', array('@value' => $_domain['domain_id'])));
-    // Reset to main domain.
-    domain_reset_domain();
-  }
-
   function testDomainURLFilters() {
     // Create domains.
     $domains = $this->domainCreateDomains();
