diff --git a/primary_term.module b/primary_term.module
index c96c30a..13b430c 100644
--- a/primary_term.module
+++ b/primary_term.module
@@ -264,6 +264,7 @@ function primary_term_token_list($type = 'all') {
     $tokens['node']['primary-term-id'] = t('ID of primary term');
     $tokens['node']['primary-termpath-raw'] = t('Full Path to Primary Term');
     $tokens['node']['primary-term-vocab'] = t('Name of the vocab of primary term');
+    $tokens['node']['primary-termpath-full'] = t('Full term path built from term hierarchy');
 
   if (module_exists('uc_catalog')) {
     $tokens['node']['primary-termpath-uc-raw'] = t('Full catalog path to Primary Term');
@@ -288,6 +289,14 @@ function primary_term_token_values($type, $object = NULL) {
         $values['primary-term-id'] = $term->tid;
         $values['primary-termpath-raw'] = drupal_get_path_alias(taxonomy_term_path($term));
 
+         // Build termpath-full token value from taxonomy hierarchy.
+        $parents = taxonomy_get_parents_all($node->primaryterm);
+        $parts = array();
+        foreach ($parents as $p) {
+          $parts[] = drupal_get_path_alias(taxonomy_term_path($p));
+        }
+        $values['primary-termpath-full'] = array_reverse($parts);
+
         $vocab = taxonomy_vocabulary_load($term->vid);
         $values['primary-term-vocab'] = $vocab->name;
 
