Index: wp-includes/taxonomy.php
===================================================================
--- wp-includes/taxonomy.php	(revision 11259)
+++ wp-includes/taxonomy.php	(working copy)
@@ -2151,29 +2151,25 @@
  *
  * @since 2.5.0
  *
- * @param object|int|string $term
+ * @param int $term_id The term id for which to get a link.
  * @param string $taxonomy
  * @return string HTML link to taxonomy term archive
  */
-function get_term_link( $term, $taxonomy ) {
+function get_term_link( $term_id, $taxonomy ) {
 	global $wp_rewrite;
+	$term_id = intval($term_id);
 
-	if ( !is_object($term) ) {
-		if ( is_int($term) ) {
-			$term = &get_term($term, $taxonomy);
-		} else {
-			$term = &get_term_by('slug', $term, $taxonomy);
-		}
-	}
-	if ( is_wp_error( $term ) )
-		return $term;
-
 	// use legacy functions for core taxonomies until they are fully plugged in
 	if ( $taxonomy == 'category' )
-		return get_category_link((int) $term->term_id);
+		return get_category_link((int) $term_id);
 	if ( $taxonomy == 'post_tag' )
-		return get_tag_link((int) $term->term_id);
+		return get_tag_link((int) $term_id);
+	
+	$term = &get_term($term_id, $taxonomy);
 
+	if ( is_wp_error( $term ) )
+		return $term;
+
 	$termlink = $wp_rewrite->get_extra_permastruct($taxonomy);
 
 	$slug = $term->slug;
Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 11259)
+++ wp-includes/category-template.php	(working copy)
@@ -887,7 +887,7 @@
 		return false;
 
 	foreach ( $terms as $term ) {
-		$link = get_term_link( $term, $taxonomy );
+		$link = get_term_link( $term->term_id, $taxonomy );
 		if ( is_wp_error( $link ) )
 			return $link;
 		$term_links[] = '<a href="' . $link . '" rel="tag">' . $term->name . '</a>';
