diff -ur taxonomyblocks/taxonomyblocks.module /home/fulltuck/public_html/sites/all/modules/taxonomyblocks/taxonomyblocks.module
--- taxonomyblocks/taxonomyblocks.module	2010-05-11 11:52:16.000000000 -0500
+++ /home/fulltuck/public_html/sites/all/modules/taxonomyblocks/taxonomyblocks.module	2011-04-04 13:33:59.000000000 -0500
@@ -875,6 +875,18 @@
   return $url_array;
 }
 
+function buildTermPath($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 = buildTermPath($tid, $parentId, $path);
+	}
+	$fullPath = $path;
+	return $fullPath;
+}
+
 function taxonomy_recursive_array_builder($tid_array, $options) {
   if (!empty($options)) {
     $pathpattern   = $options['pathpattern'];
@@ -909,6 +921,13 @@
     
     $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 = buildTermPath($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);

