Index: wp-includes/template-functions-category.php
===================================================================
--- wp-includes/template-functions-category.php	(revision 2972)
+++ wp-includes/template-functions-category.php	(working copy)
@@ -274,7 +274,7 @@
 }
 
 function list_cats($optionall = 1, $all = 'All', $sort_column = 'ID', $sort_order = 'asc', $file = '', $list = true, $optiondates = 0, $optioncount = 0, $hide_empty = 1, $use_desc_for_title = 1, $children=FALSE, $child_of=0, $categories=0, $recurse=0, $feed = '', $feed_image = '', $exclude = '', $hierarchical=FALSE) {
-	global $wpdb, $category_posts;
+	global $wpdb, $category_posts, $wp_query;
 	// Optiondates now works
 	if ( '' == $file )
 		$file = get_settings('home') . '/';
@@ -338,6 +338,9 @@
 		if ( (intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) && (!$hierarchical || $category->category_parent == $child_of) ) {
 			$num_found++;
 			$link = '<a href="'.get_category_link($category->cat_ID).'" ';
+			if ($category->cat_ID == $wp_query->get_queried_object_id() && is_category()) {
+				$link .= 'class="current-cat" ';
+			}
 			if ( $use_desc_for_title == 0 || empty($category->category_description) )
 				$link .= 'title="'. sprintf(__("View all posts filed under %s"), wp_specialchars($category->cat_name)) . '"';
 			else
