diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module
index eaa6503..9ee5f84 100644
--- a/modules/taxonomy/taxonomy.module
+++ b/modules/taxonomy/taxonomy.module
@@ -57,9 +57,14 @@ function taxonomy_link($type, $node = NULL) {
         // 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);
+          // We 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))
           );
         }
