diff --git a/include/ajax.users.php b/include/ajax.users.php
index 2e5a83e32dfda68542fe3186ef66734a9c40b25b..71ebe426235f58789f8afcc934a9754415a5414b 100644
--- a/include/ajax.users.php
+++ b/include/ajax.users.php
@@ -22,7 +22,7 @@ include_once(INCLUDE_DIR.'class.ticket.php');
 class UsersAjaxAPI extends AjaxController {
 
     /* Assumes search by emal for now */
-    function search() {
+    function search($type = null) {
 
         if(!isset($_REQUEST['q'])) {
             Http::response(400, 'Query argument is required');
@@ -31,40 +31,46 @@ class UsersAjaxAPI extends AjaxController {
         $limit = isset($_REQUEST['limit']) ? (int) $_REQUEST['limit']:25;
         $users=array();
         $emails=array();
-        foreach (StaffAuthenticationBackend::searchUsers($_REQUEST['q']) as $u) {
-            $name = "{$u['first']} {$u['last']}";
-            $users[] = array('email' => $u['email'], 'name'=>$name,
-                'info' => "{$u['email']} - $name (remote)",
-                'id' => "auth:".$u['id'], "/bin/true" => $_REQUEST['q']);
-            $emails[] = $u['email'];
+
+        if (!$type || !strcasecmp($type, 'remote')) {
+            foreach (StaffAuthenticationBackend::searchUsers($_REQUEST['q']) as $u) {
+                $name = "{$u['first']} {$u['last']}";
+                $users[] = array('email' => $u['email'], 'name'=>$name,
+                    'info' => "{$u['email']} - $name (remote)",
+                    'id' => "auth:".$u['id'], "/bin/true" => $_REQUEST['q']);
+                $emails[] = $u['email'];
+            }
         }
-        $remote_emails = ($emails = array_filter($emails))
-            ? ' OR email.address IN ('.implode(',',db_input($emails)).') '
-            : '';
-
-        $escaped = db_input(strtolower($_REQUEST['q']), false);
-        $sql='SELECT DISTINCT user.id, email.address, name '
-            .' FROM '.USER_TABLE.' user '
-            .' JOIN '.USER_EMAIL_TABLE.' email ON user.id = email.user_id '
-            .' LEFT JOIN '.FORM_ENTRY_TABLE.' entry ON (entry.object_type=\'U\' AND entry.object_id = user.id)
-               LEFT JOIN '.FORM_ANSWER_TABLE.' value ON (value.entry_id=entry.id) '
-            .' WHERE email.address LIKE \'%'.$escaped.'%\'
-               OR user.name LIKE \'%'.$escaped.'%\'
-               OR value.value LIKE \'%'.$escaped.'%\''.$remote_emails
-            .' ORDER BY user.created '
-            .' LIMIT '.$limit;
-
-        if(($res=db_query($sql)) && db_num_rows($res)){
-            while(list($id,$email,$name)=db_fetch_row($res)) {
-                foreach ($users as $i=>$u) {
-                    if ($u['email'] == $email) {
-                        unset($users[$i]);
-                        break;
+
+        if (!$type || !strcasecmp($type, 'local')) {
+            $remote_emails = ($emails = array_filter($emails))
+                ? ' OR email.address IN ('.implode(',',db_input($emails)).') '
+                : '';
+
+            $escaped = db_input(strtolower($_REQUEST['q']), false);
+            $sql='SELECT DISTINCT user.id, email.address, name '
+                .' FROM '.USER_TABLE.' user '
+                .' JOIN '.USER_EMAIL_TABLE.' email ON user.id = email.user_id '
+                .' LEFT JOIN '.FORM_ENTRY_TABLE.' entry ON (entry.object_type=\'U\' AND entry.object_id = user.id)
+                   LEFT JOIN '.FORM_ANSWER_TABLE.' value ON (value.entry_id=entry.id) '
+                .' WHERE email.address LIKE \'%'.$escaped.'%\'
+                   OR user.name LIKE \'%'.$escaped.'%\'
+                   OR value.value LIKE \'%'.$escaped.'%\''.$remote_emails
+                .' ORDER BY user.created '
+                .' LIMIT '.$limit;
+
+            if(($res=db_query($sql)) && db_num_rows($res)){
+                while(list($id,$email,$name)=db_fetch_row($res)) {
+                    foreach ($users as $i=>$u) {
+                        if ($u['email'] == $email) {
+                            unset($users[$i]);
+                            break;
+                        }
                     }
+                    $name = Format::htmlchars($name);
+                    $users[] = array('email'=>$email, 'name'=>$name, 'info'=>"$email - $name",
+                        "id" => $id, "/bin/true" => $_REQUEST['q']);
                 }
-                $name = Format::htmlchars($name);
-                $users[] = array('email'=>$email, 'name'=>$name, 'info'=>"$email - $name",
-                    "id" => $id, "/bin/true" => $_REQUEST['q']);
             }
         }
 
diff --git a/scp/ajax.php b/scp/ajax.php
index 9ef736ef7999896da99e8c889e97dde6a7b682d2..7afd9ceb594f7396ebedc3dfca079d8a0e632b2b 100644
--- a/scp/ajax.php
+++ b/scp/ajax.php
@@ -64,6 +64,8 @@ $dispatcher = patterns('',
     )),
     url('^/users', patterns('ajax.users.php:UsersAjaxAPI',
         url_get('^$', 'search'),
+        url_get('^/local$', 'search', array('local')),
+        url_get('^/remote$', 'search', array('remote')),
         url_get('^/(?P<id>\d+)$', 'getUser'),
         url_post('^/(?P<id>\d+)$', 'updateUser'),
         url_get('^/(?P<id>\d+)/edit$', 'editUser'),