--- apply_for_role.module.orig	2010-01-30 10:16:50.000000000 -0700
+++ apply_for_role.module	2010-01-30 11:58:26.000000000 -0700
@@ -182,6 +182,22 @@ function apply_for_role_settings_form_su
  * User management
  */
 function apply_for_role_admin_form() {
+  $roles = variable_get('users_apply_roles', array());
+  $roles[0] = 'None';
+  ksort($roles);
+  $filter_role = $_SESSION['apply_for_role_filter'];
+  if ($filter_role > 0) {
+	$where_filter = 'WHERE a.rid = '.$filter_role;
+	$message = 'Currently showing applications for role: <b>'.$roles[$filter_role].'</b>';
+  }
+  $form['filter_role'] = array(
+    '#type' => 'select',
+	'#title' => 'Filter by role',
+	'#options' => $roles, 
+	'#default_value' => $filter_role,
+	'#description' => $message,
+  );
+  $form['filter_submit'] = array('#type' => 'submit', '#value' => t('Filter'));
   $header = array(
     array('data' => t('Username'), 'field' => 'u.name'),
     array('data' => t('Current Roles')),
@@ -196,7 +212,7 @@ function apply_for_role_admin_form() {
 
   $roles = user_roles(TRUE);
 
-  $result = db_query("SELECT * FROM {users_roles_apply} a LEFT JOIN {users} u ON u.uid = a.uid ". tablesort_sql($header));
+  $result = db_query("SELECT * FROM {users_roles_apply} a LEFT JOIN {users} u ON u.uid = a.uid ". $where_filter . tablesort_sql($header));
 
   while ($row = db_fetch_object($result)) {
     $user = user_load(array('uid' => $row->uid));
@@ -240,6 +256,10 @@ function apply_for_role_admin_form() {
   return $form;
 }
 
+function apply_for_role_admin_form_submit($form, &$form_state) {
+  $_SESSION['apply_for_role_filter'] = $form_state['filter_role'];
+}
+
 function apply_for_role_approve_form($uid, $rid) {
   $user = user_load(array('uid' => $uid));
   $form['user'] = array('#type' => 'value', '#value' => $user);
@@ -322,7 +342,7 @@ function theme_apply_for_role_admin_form
     $rows[] = array(array('data' => '<em>'. t('There are currently no applications.') .'</em>', 'colspan' => 9));
   }
 
-  return theme('table', $form['#header'], $rows) . drupal_render($form);
+  return drupal_render($form) . theme('table', $form['#header'], $rows);
 }
 
 /**
