--- primary_term.module	2010-10-18 21:45:30.000000000 +0100
+++ primary_term.module	2011-03-23 10:13:12.000000000 +0000
@@ -250,6 +250,7 @@ function primary_term_token_list($type =
     $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');
@@ -268,6 +269,15 @@ function primary_term_token_values($type
         $values['primary-term'] = check_plain($term->name);
         $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;
