--- modules/path_alias_cache/path_alias_cache.module.orig	2011-06-01 17:13:26.000000000 +1000
+++ modules/path_alias_cache/path_alias_cache.module	2012-05-28 15:39:36.000000000 +1000
@@ -75,6 +75,21 @@
           $cache['no_aliases'][$path_language] = array_flip(array_diff_key($cache['system_paths'], array_keys($cache['map'][$path_language])));
         }
       }
+      //
+      // prime the cache with taxonomy-term url_alias
+      // todo: dont call the following cache primer if above db_query returns results.
+      //
+      static $cache_url_alias = FALSE;
+      if ($cache_url_alias == FALSE && preg_match("@^taxonomy/term/@", $path)) {
+        $sth = db_query("SELECT src,dst FROM {url_alias} WHERE src LIKE 'taxonomy/term/%%' AND (language = '%s' OR language = '') ORDER BY language DESC", $path_language);
+        while ($row = db_fetch_object($sth)) {
+          if (!isset($cache['map'][ $path_language ][ $row->src ])) {
+            $cache['map'][ $path_language ][ $row->src ] = $row->dst;
+          }
+        }
+        $cache_url_alias = TRUE;
+      }
+
       // If the alias has already been loaded, return it.
       if (isset($cache['map'][$path_language][$path])) {
         return $cache['map'][$path_language][$path];
