diff --git a/include/ajax.users.php b/include/ajax.users.php
new file mode 100644
index 0000000000000000000000000000000000000000..11b765923ddd31b65b58db3c6a69c417198d377a
--- /dev/null
+++ b/include/ajax.users.php
@@ -0,0 +1,50 @@
+<?php
+/*********************************************************************
+    ajax.users.php
+
+    AJAX interface for  users (based on submitted tickets)
+    XXX: osTicket doesn't support user accounts at the moment.
+
+    Peter Rotich <peter@osticket.com>
+    Copyright (c)  2006-2012 osTicket
+    http://www.osticket.com
+
+    Released under the GNU General Public License WITHOUT ANY WARRANTY.
+    See LICENSE.TXT for details.
+
+    vim: expandtab sw=4 ts=4 sts=4:
+**********************************************************************/
+
+if(!defined('INCLUDE_DIR')) die('403');
+
+include_once(INCLUDE_DIR.'class.ticket.php');
+
+class UsersAjaxAPI extends AjaxController {
+   
+    /* Assumes search by emal for now */
+    function search() {
+
+        if(!isset($_REQUEST['q'])) {
+            Http::response(400, 'Query argument is required');
+        }
+
+        $limit = isset($_REQUEST['limit']) ? (int) $_REQUEST['limit']:25;
+        $users=array();
+
+        $sql='SELECT DISTINCT email, name '
+            .' FROM '.TICKET_TABLE
+            .' WHERE email LIKE \'%'.db_input(strtolower($_REQUEST['q']), false).'%\' '
+            .' ORDER BY created '
+            .' LIMIT '.$limit;
+           
+        if(($res=db_query($sql)) && db_num_rows($res)){
+            while(list($email,$name)=db_fetch_row($res)) {
+                $users[] = array('email'=>$email, 'name'=>$name, 'info'=>"$email - $name");
+            }                    
+        }  
+        
+        return $this->encode($users);
+
+    }
+}
+?>
diff --git a/scp/ajax.php b/scp/ajax.php
index 7c66da27ca0b1853953bdec0c624560db3176215..471e9c710d577d662abae098ef2053dbfd702694 100644
--- a/scp/ajax.php
+++ b/scp/ajax.php
@@ -30,27 +30,28 @@ ini_set('display_startup_errors','0');
 //TODO: disable direct access via the browser? i,e All request must have REFER? 
 if(!defined('INCLUDE_DIR'))	Http::response(500,'config error');
 
-require_once INCLUDE_DIR."/class.dispatcher.php";
-require_once INCLUDE_DIR."/class.ajax.php";
-$dispatcher = patterns("",
-    url("^/kb/", patterns("ajax.kbase.php:KbaseAjaxAPI",
+require_once INCLUDE_DIR.'/class.dispatcher.php';
+require_once INCLUDE_DIR.'/class.ajax.php';
+$dispatcher = patterns('',
+    url('^/kb/', patterns('ajax.kbase.php:KbaseAjaxAPI',
         # Send ticket-id as a query arg => canned-response/33?ticket=83
-        url_get("^canned-response/(?P<id>\d+).(?P<format>json|txt)", "cannedResp"),
-        url_get("^faq/(?P<id>\d+)","faq")
+        url_get('^canned-response/(?P<id>\d+).(?P<format>json|txt)', 'cannedResp'),
+        url_get('^faq/(?P<id>\d+)', 'faq')
     )),
-    url("^/content/", patterns("ajax.content.php:ContentAjaxAPI",
-        url_get("^log/(?P<id>\d+)", 'log'),
-        url_get("^ticket_variables",'ticket_variables')
+    url('^/content/', patterns('ajax.content.php:ContentAjaxAPI',
+        url_get('^log/(?P<id>\d+)', 'log'),
+        url_get('^ticket_variables', 'ticket_variables')
     )),
-    url("^/config/", patterns("ajax.config.php:ConfigAjaxAPI",
-        url_get("^ui",'ui')
+    url('^/config/', patterns('ajax.config.php:ConfigAjaxAPI',
+        url_get('^ui', 'ui')
     )),
-    url_get("^/tickets$", array("ajax.tickets.php:TicketsAjaxAPI", "search")),
-    url("^/ticket/", patterns("ajax.tickets.php:TicketsAjaxAPI",
-        url_get("^(?P<tid>\d+)/preview", "previewTicket"),
-        url_get("^(?P<tid>\d+)/lock", "acquireLock"),
-        url_post("^(?P<tid>\d+)/lock/(?P<id>\d+)/renew", "renewLock"),
-        url_post("^(?P<tid>\d+)/lock/(?P<id>\d+)/release", "releaseLock")
+    url_get('^/users$', array('ajax.users.php:UsersAjaxAPI', 'search')),
+    url_get('^/tickets$', array('ajax.tickets.php:TicketsAjaxAPI', 'search')),
+    url('^/ticket/', patterns('ajax.tickets.php:TicketsAjaxAPI',
+        url_get('^(?P<tid>\d+)/preview', 'previewTicket'),
+        url_get('^(?P<tid>\d+)/lock', 'acquireLock'),
+        url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/renew', 'renewLock'),
+        url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/release', 'releaseLock')
     ))
 );