diff --git a/include/class.filter.php b/include/class.filter.php
index 3f01e5d0ea7e5b4b7be2b12ca56109d234e51edc..db1256250081c8ebc4271620a1c709ead8ef87db 100644
--- a/include/class.filter.php
+++ b/include/class.filter.php
@@ -679,6 +679,8 @@ class TicketFilter {
         //Extract the vars we care about (fields we filter by!).
         $this->vars = array('body'=>$vars['message']);
         $interest = Filter::getSupportedMatchFields();
+        // emailId is always significant to the filter process
+        $interest[] = 'emailId';
         foreach ($vars as $k=>$v) {
             if (in_array($k, $interest))
                 $this->vars[$k] = trim($v);
diff --git a/include/class.ticket.php b/include/class.ticket.php
index 616656207b4f57e6c7f37dc59907cd9419f04fbf..10798a28eb90d75a532b3b0b2395bf6e75f63257 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -2012,12 +2012,14 @@ class Ticket {
         //Any error above is fatal.
         if($errors)  return 0;
 
-        $user = User::fromForm($user_info);
-        $user_email = UserEmail::ensure($user_info['email']);
-
         # Perform ticket filter actions on the new ticket arguments
         if ($ticket_filter) $ticket_filter->apply($vars);
 
+        // Allow vars to be changed in ticket filter and applied to the user
+        // account created or detected
+        $user = User::fromForm($vars);
+        $user_email = UserEmail::ensure($vars['email']);
+
         # Some things will need to be unpacked back into the scope of this
         # function
         if (isset($vars['autorespond'])) $autorespond=$vars['autorespond'];