Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 19734)
+++ wp-includes/category-template.php	(working copy)
@@ -284,6 +284,7 @@
  *     'name' (string) - The name attribute value for select element.
  *     'id' (string) - The ID attribute value for select element. Defaults to name if omitted.
  *     'class' (string) - The class attribute value for select element.
+ * 	   'slug_as_value' (bool|int) - Uses category slug as option value instead of category ID.
  *     'selected' (int) - Which category ID is selected.
  *     'taxonomy' (string) - The name of the taxonomy to retrieve. Defaults to category.
  *
@@ -308,7 +309,8 @@
 		'name' => 'cat', 'id' => '',
 		'class' => 'postform', 'depth' => 0,
 		'tab_index' => 0, 'taxonomy' => 'category',
-		'hide_if_empty' => false
+		'hide_if_empty' => false,
+		'slug_as_value' => false
 	);
 
 	$defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0;
@@ -946,9 +948,10 @@
 	 */
 	function start_el( &$output, $category, $depth, $args, $id = 0 ) {
 		$pad = str_repeat('&nbsp;', $depth * 3);
-
+		$option_value = ( $args['slug_as_value'] == 'true' ) ? $category->slug : $category->term_id;	
 		$cat_name = apply_filters('list_cats', $category->name, $category);
-		$output .= "\t<option class=\"level-$depth\" value=\"".$category->term_id."\"";
+		
+		$output .= "\t<option class=\"level-$depth\" value=\"".option_value."\"";
 		if ( $category->term_id == $args['selected'] )
 			$output .= ' selected="selected"';
 		$output .= '>';
