Index: author-template.php
===================================================================
--- author-template.php	(revision 12245)
+++ author-template.php	(working copy)
@@ -247,6 +247,7 @@
 	global $wpdb;
 
 	$defaults = array(
+		'orderby' => 'display_name', 'order' => 'ASC', 
 		'optioncount' => false, 'exclude_admin' => true,
 		'show_fullname' => false, 'hide_empty' => true,
 		'feed' => '', 'feed_image' => '', 'feed_type' => '', 'echo' => true,
@@ -257,8 +258,20 @@
 	extract($r, EXTR_SKIP);
 	$return = '';
 
+	$_orderby = strtolower($orderby);
+	if ( 'login' == $_orderby || 'user_login' == $_orderby )
+		$orderby = 'user_login';
+	else if ( 'nicename' == $_orderby || 'user_nicename' == $_orderby )
+		$orderby = 'user_nicename';
+	else if ( 'display' == $_orderby || 'display_name' == $_orderby )
+		$orderby = 'display_name';
+	elseif ( empty($_orderby) || 'id' == $_orderby )
+		$orderby = 'id';
+
+	$orderby = apply_filters( 'get_terms_orderby', $orderby, $args );
+
 	/** @todo Move select to get_authors(). */
-	$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users " . ($exclude_admin ? "WHERE user_login <> 'admin' " : '') . "ORDER BY display_name");
+	$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users " . ($exclude_admin ? "WHERE user_login <> 'admin' " : '') . "ORDER BY $orderby $order");
 
 	$author_count = array();
 	foreach ((array) $wpdb->get_results("SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql( 'post' ) . " GROUP BY post_author") as $row) {
