Index: wp-includes/functions.php
===================================================================
--- wp-includes/functions.php	(revision 2845)
+++ wp-includes/functions.php	(working copy)
@@ -2046,4 +2046,26 @@
 	return preg_replace('/^.*wp-content[\\\\\/]plugins[\\\\\/]/', '', $file);
 }
 
+//sort roles in descending order of seniority
+function compare_roles($role1, $role2) {
+	global $wp_roles;
+	//$wp_roles->role_names is arranged in descending order of seniority
+	foreach ($wp_roles->role_names as $role => $name) {
+		if ($role == $role1 && $role == $role2) {
+			//we matched role1 and role2 simultaneously; they're equal
+			return 0;
+		} elseif ($role == $role1) {
+			//we matched role1 first, role1 > role2
+			return -1; //remember we're sorting descending
+		} elseif ($role == $role2) {
+			//we matched role2 first, role1 < role2
+			return 1; //remember we're sorting descending
+		}
+	}
+	//if we get to this point, neither of the roles were found in $wp_roles->role_names,
+	//resort to alphabetical sorting.
+	return strcmp($role1, $role2);
+}
+
+
 ?>
Index: wp-admin/users.php
===================================================================
--- wp-admin/users.php	(revision 2845)
+++ wp-admin/users.php	(working copy)
@@ -225,6 +225,7 @@
 	<h2><?php _e('User List by Role'); ?></h2>
   <table cellpadding="3" cellspacing="3" width="100%">
 	<?php
+	uksort($roleclasses, 'compare_roles');
 	foreach($roleclasses as $role => $roleclass) {
 		ksort($roleclass);
 		?>

