Index: category-template.php
===================================================================
--- category-template.php	(revision 13549)
+++ category-template.php	(working copy)
@@ -438,14 +438,17 @@
  */
 function wp_list_categories( $args = '' ) {
 	$defaults = array(
-		'show_option_all' => '', 'orderby' => 'name',
-		'order' => 'ASC', 'show_last_update' => 0,
-		'style' => 'list', 'show_count' => 0,
-		'hide_empty' => 1, 'use_desc_for_title' => 1,
-		'child_of' => 0, 'feed' => '', 'feed_type' => '',
-		'feed_image' => '', 'exclude' => '', 'exclude_tree' => '', 'current_category' => 0,
+		'show_option_all' => '', 'show_option_none' => __('No categories'),
+		'orderby' => 'name', 'order' => 'ASC',
+		'show_last_update' => 0, 'style' => 'list',
+		'show_count' => 0, 'hide_empty' => 1,
+		'use_desc_for_title' => 1, 'child_of' => 0,
+		'feed' => '', 'feed_type' => '',
+		'feed_image' => '', 'exclude' => '',
+		'exclude_tree' => '', 'current_category' => 0,
 		'hierarchical' => true, 'title_li' => __( 'Categories' ),
-		'echo' => 1, 'depth' => 0
+		'echo' => 1, 'depth' => 0,
+		'taxonomy' => 'category'
 	);
 
 	$r = wp_parse_args( $args, $defaults );
@@ -462,6 +465,10 @@
 		$r['exclude_tree'] = $r['exclude'];
 		$r['exclude'] = '';
 	}
+	
+	if ( !isset( $r['class'] ) ) {
+		$r['class'] = ( 'category' == $r['taxonomy'] ) ? 'categories' : $r['taxonomy'];
+	}
 
 	extract( $r );
 
@@ -469,13 +476,15 @@
 
 	$output = '';
 	if ( $title_li && 'list' == $style )
-			$output = '<li class="categories">' . $r['title_li'] . '<ul>';
+			$output = '<li class="' . $class . '">' . $title_li . '<ul>';
 
 	if ( empty( $categories ) ) {
-		if ( 'list' == $style )
-			$output .= '<li>' . __( "No categories" ) . '</li>';
-		else
-			$output .= __( "No categories" );
+		if ( ! empty( $show_option_none ) ) {
+			if ( 'list' == $style )
+				$output .= '<li>' . $show_option_none . '</li>';
+			else
+				$output .= $show_option_none;
+		}
 	} else {
 		global $wp_query;
 
@@ -485,7 +494,7 @@
 			else
 				$output .= '<a href="' .  get_bloginfo( 'url' )  . '">' . $show_option_all . '</a>';
 
-		if ( empty( $r['current_category'] ) && is_category() )
+		if ( empty( $r['current_category'] ) && ( is_category() || is_tax() ) )
 			$r['current_category'] = $wp_query->get_queried_object_id();
 
 		if ( $hierarchical )
Index: classes.php
===================================================================
--- classes.php	(revision 13549)
+++ classes.php	(working copy)
@@ -1342,7 +1342,10 @@
 
 		$cat_name = esc_attr( $category->name);
 		$cat_name = apply_filters( 'list_cats', $cat_name, $category );
-		$link = '<a href="' . get_category_link( $category->term_id ) . '" ';
+		if ( 'category' == $category->taxonomy )
+			$link = '<a href="' . get_category_link( $category->term_id ) . '" ';
+		else
+			$link = '<a href="' . get_term_link( $category, $category->taxonomy ) . '" ';
 		if ( $use_desc_for_title == 0 || empty($category->description) )
 			$link .= 'title="' . sprintf(__( 'View all posts filed under %s' ), $cat_name) . '"';
 		else
