diff -rupN drupal-6.x-dev/modules/taxonomy/taxonomy.module drupal-6.x-dev_new/modules/taxonomy/taxonomy.module
--- drupal-6.x-dev/modules/taxonomy/taxonomy.module	2009-09-15 21:13:08.000000000 +1000
+++ modules/taxonomy/taxonomy.module	2009-11-14 22:15:26.000000000 +1100
@@ -58,9 +58,14 @@ function taxonomy_link($type, $node = NU
         // other terms which are objects. So we have to check if a $term
         // is an object or not.
         if (is_object($term)) {
+          $path = taxonomy_term_path($term);
+          $url_parts = parse_url($path);
+          // Need to pass the path  back in bits to avoid encoding.
           $links['taxonomy_term_'. $term->tid] = array(
             'title' => $term->name,
-            'href' => taxonomy_term_path($term),
+            'href' => $url_parts['path'],
+            'query' => isset($url_parts['query']) ? $url_parts['query'] : '',
+            'fragment' => isset($url_parts['fragment']) ? $url_parts['fragment'] : '',
             'attributes' => array('rel' => 'tag', 'title' => strip_tags($term->description))
           );
         }
