diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php
index bee2c7d6cfcd7be03684f1baedb273979b7205a5..1a010c450a2c693a62b2fb360e6a53d76574b77a 100644
--- a/include/ajax.tickets.php
+++ b/include/ajax.tickets.php
@@ -450,16 +450,19 @@ class TicketsAjaxAPI extends AjaxController {
     }
 
     //Collaborators utils
-    function addCollaborator($tid) {
+    function addCollaborator($tid, $uid=0) {
         global $thisstaff;
 
         if (!($ticket=Ticket::lookup($tid))
                 || !$ticket->checkStaffAccess($thisstaff))
             Http::response(404, 'No such ticket');
 
+
+        $user = $uid? User::lookup($uid) : null;
+
         //If not a post then assume new collaborator form
         if(!$_POST)
-            return self::_addcollaborator($ticket);
+            return self::_addcollaborator($ticket, $user);
 
         $user = $form = null;
         if (isset($_POST['id']) && $_POST['id']) { //Existing user/
@@ -540,9 +543,9 @@ class TicketsAjaxAPI extends AjaxController {
 
         $info += array(
                     'title' => sprintf('Ticket #%s: Add a collaborator', $ticket->getNumber()),
-                    'action' => sprintf('#tickets/%d/add-collaborator', $ticket->getId())
+                    'action' => sprintf('#tickets/%d/add-collaborator', $ticket->getId()),
+                    'onselect' => sprintf('ajax.php/tickets/%d/add-collaborator/', $ticket->getId()),
                     );
-
         return self::_userlookup($user, $form, $info);
     }
 
diff --git a/include/staff/templates/user-lookup.tmpl.php b/include/staff/templates/user-lookup.tmpl.php
index fcc8ec2ca3624364bc1b668aebdf843f00036fbd..617011b2d6eaeeafa59c31fe5e12003b55d40ff0 100644
--- a/include/staff/templates/user-lookup.tmpl.php
+++ b/include/staff/templates/user-lookup.tmpl.php
@@ -80,7 +80,7 @@ $(function() {
         },
         onselect: function (obj) {
             $('#the-lookup-form').load(
-                "ajax.php/users/select/"+obj.id
+                '<?php echo $info['onselect']? $info['onselect']: "ajax.php/users/select/"; ?>'+obj.id
             );
         },
         property: "/bin/true"
diff --git a/scp/ajax.php b/scp/ajax.php
index 397d1f44b563cb2d4e8221d7d8dd5f71229330b6..c84b73c2d9328a4c5b39d35e7c460a0d1ece21d3 100644
--- a/scp/ajax.php
+++ b/scp/ajax.php
@@ -62,7 +62,7 @@ $dispatcher = patterns('',
         url_get('^/(?P<id>\d+)$', 'getUser'),
         url_post('^/(?P<id>\d+)$', 'updateUser'),
         url_get('^/(?P<id>\d+)/edit$', 'editUser'),
-        url_get('^/lookup$', 'getUser'),
+        url('^/lookup$', 'getUser'),
         url_get('^/lookup/form$', 'getLookupForm'),
         url_post('^/lookup/form$', 'addUser'),
         url_get('^/select$', 'selectUser'),
@@ -80,6 +80,7 @@ $dispatcher = patterns('',
         url_post('^(?P<tid>\d+)/lock/(?P<id>\d+)/release', 'releaseLock'),
         url_get('^(?P<tid>\d+)/collaborators/manage$', 'showCollaborators'),
         url_post('^(?P<tid>\d+)/collaborators$', 'updateCollaborators'),
+        url_get('^(?P<tid>\d+)/add-collaborator/(?P<uid>\d+)$', 'addCollaborator'),
         url('^(?P<tid>\d+)/add-collaborator$', 'addCollaborator'),
         url_get('^lookup', 'lookup'),
         url_get('^search', 'search')