Index: wp-includes/user.php
===================================================================
--- wp-includes/user.php	(revision 17488)
+++ wp-includes/user.php	(working copy)
@@ -980,7 +980,8 @@
 		'include' => '', 'exclude' => '', 'multi' => 0,
 		'show' => 'display_name', 'echo' => 1,
 		'selected' => 0, 'name' => 'user', 'class' => '', 'id' => '',
-		'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'include_selected' => false
+		'blog_id' => $GLOBALS['blog_id'], 'who' => '', 'include_selected' => false,
+		'option_none_value' => -1
 	);
 
 	$defaults['selected'] = is_author() ? get_query_var( 'author' ) : 0;
@@ -1006,7 +1007,7 @@
 			$output .= "\t<option value='0'>$show_option_all</option>\n";
 
 		if ( $show_option_none ) {
-			$_selected = selected( -1, $selected, false );
+			$_selected = selected( $option_none_value, $selected, false );
 			$output .= "\t<option value='-1'$_selected>$show_option_none</option>\n";
 		}
 
Index: wp-includes/category-template.php
===================================================================
--- wp-includes/category-template.php	(revision 17488)
+++ wp-includes/category-template.php	(working copy)
@@ -309,7 +309,7 @@
 		'name' => 'cat', 'id' => '',
 		'class' => 'postform', 'depth' => 0,
 		'tab_index' => 0, 'taxonomy' => 'category',
-		'hide_if_empty' => false
+		'hide_if_empty' => false, 'option_none_value' => -1
 	);
 
 	$defaults['selected'] = ( is_category() ) ? get_query_var( 'cat' ) : 0;
@@ -338,28 +338,28 @@
 	$class = esc_attr( $class );
 	$id = $id ? esc_attr( $id ) : $name;
 
-	if ( ! $r['hide_if_empty'] || ! empty($categories) )
+	if ( ! $hide_if_empty || ! empty($categories) )
 		$output = "<select name='$name' id='$id' class='$class' $tab_index_attribute>\n";
 	else
 		$output = '';
 
-	if ( empty($categories) && ! $r['hide_if_empty'] && !empty($show_option_none) ) {
+	if ( empty($categories) && ! $hide_if_empty && !empty($show_option_none) ) {
 		$show_option_none = apply_filters( 'list_cats', $show_option_none );
-		$output .= "\t<option value='-1' selected='selected'>$show_option_none</option>\n";
+		$output .= "\t<option value='" . esc_attr( $option_none_value ) . "' selected='selected'>$show_option_none</option>\n";
 	}
 
 	if ( ! empty( $categories ) ) {
 
 		if ( $show_option_all ) {
 			$show_option_all = apply_filters( 'list_cats', $show_option_all );
-			$selected = ( '0' === strval($r['selected']) ) ? " selected='selected'" : '';
-			$output .= "\t<option value='0'$selected>$show_option_all</option>\n";
+			$_selected = selected( 0, $selected, false);
+			$output .= "\t<option value='0'$_selected>$show_option_all</option>\n";
 		}
 
 		if ( $show_option_none ) {
 			$show_option_none = apply_filters( 'list_cats', $show_option_none );
-			$selected = ( '-1' === strval($r['selected']) ) ? " selected='selected'" : '';
-			$output .= "\t<option value='-1'$selected>$show_option_none</option>\n";
+			$_selected = selected( $option_none_value, $selected, false );
+			$output .= "\t<option value='" . esc_attr( $option_none_value ) . "'$_selected>$show_option_none</option>\n";
 		}
 
 		if ( $hierarchical )
@@ -369,7 +369,7 @@
 
 		$output .= walk_category_dropdown_tree( $categories, $depth, $r );
 	}
-	if ( ! $r['hide_if_empty'] || ! empty($categories) )
+	if ( ! $hide_if_empty || ! empty($categories) )
 		$output .= "</select>\n";
 
 
