diff -r -up ./taxonomyblocks/taxonomyblocks.module taxonomyblocks-edited/taxonomyblocks.module
--- ./taxonomyblocks/taxonomyblocks.module	2010-09-15 10:10:59.000000000 -0700
+++ taxonomyblocks-edited/taxonomyblocks.module	2011-04-06 11:12:44.092179219 -0700
@@ -894,6 +894,19 @@ function taxonomy_trail_creator($pathpat
   return $url_array;
 }
 
+function build_term_path($tid, $parentId, $path){
+    if($parentId != '0'){
+        $parentName = db_result(db_query("SELECT name FROM {term_data} WHERE tid = %d", $parentId));
+        $path = substr_replace($path, $parentName.'/', strpos($path, '%'), 0);
+        $tid = $parentId;
+        $parentId = db_result(db_query("SELECT parent FROM {term_hierarchy} WHERE tid = %d", $tid));
+        $path = build_term_path($tid, $parentId, $path);
+    }
+    $fullPath = $path;
+    return $fullPath;
+}
+
+
 function taxonomy_recursive_array_builder($tid_array, $options) {
   if (!empty($options)) {
     $pathpattern   = $options['pathpattern'];
@@ -928,6 +941,13 @@ function taxonomy_recursive_array_builde
     
     $path  = str_replace('%tid', $tid, $pathpattern);
     $path  = str_replace('%termname', $termname, $path);
+    if(stristr($pathpattern, '%termpath')){
+        $parentId = db_result(db_query("SELECT parent FROM {term_hierarchy} WHERE tid = %d", $tid));
+        if($parentId != '0'){
+            $path = build_term_path($tid, $parentId, $path);
+        }
+        $path = strtolower(str_replace(' ', '-', str_replace('%termpath', $termname, $path)));
+    }
     if ($nid) {
       $path  = str_replace('%nid', $nid, $path);
       $path  = str_replace('%nodeuid', $nodeuid, $path);
