diff --git a/include/class.ticket.php b/include/class.ticket.php
index f1fb1f3bbadec4c7273fd5c9c855f8dfb7de125c..ed80d6b78d36fc09bb78f9acadeaab5cb697bcfd 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -2137,32 +2137,6 @@ class Ticket {
             }
         };
 
-        //Check for 403
-        if ($vars['email']  && Validator::is_email($vars['email'])) {
-
-            //Make sure the email address is not banned
-            if(TicketFilter::isBanned($vars['email'])) {
-                $errors['err']='Ticket denied. Error #403';
-                $errors['errno'] = 403;
-                $ost->logWarning('Ticket denied', 'Banned email - '.$vars['email']);
-                return 0;
-            }
-
-            //Make sure the open ticket limit hasn't been reached. (LOOP CONTROL)
-            if($cfg->getMaxOpenTickets()>0 && strcasecmp($origin,'staff')
-                    && ($user=TicketUser::lookupByEmail($vars['email']))
-                    && ($openTickets=$user->getNumOpenTickets())
-                    && ($openTickets>=$cfg->getMaxOpenTickets()) ) {
-
-                $errors['err']="You've reached the maximum open tickets allowed.";
-                $ost->logWarning('Ticket denied -'.$vars['email'],
-                        sprintf('Max open tickets (%d) reached for %s ',
-                            $cfg->getMaxOpenTickets(), $vars['email']));
-
-                return 0;
-            }
-        }
-
         // Create and verify the dynamic form entry for the new ticket
         $form = TicketForm::getNewInstance();
         // If submitting via email, ensure we have a subject and such
@@ -2192,13 +2166,46 @@ class Ticket {
                     $vars[$f->get('name')] = $f->toString($f->getClean());
         }
 
+
+        //Check for 403
+        if ($vars['email']
+                && Validator::is_email($vars['email'])) {
+
+            //Make sure the email address is not banned
+            if (TicketFilter::isBanned($vars['email'])) {
+                $errors = array(
+                        'errno' => 403,
+                        'err' => 'This help desk is for use by authorized
+                        users only');
+                $ost->logWarning('Ticket denied', 'Banned email - '.$vars['email']);
+                return 0;
+            }
+
+            //Make sure the open ticket limit hasn't been reached. (LOOP CONTROL)
+            if ($cfg->getMaxOpenTickets() > 0
+                    && strcasecmp($origin, 'staff')
+                    && ($_user=TicketUser::lookupByEmail($vars['email']))
+                    && ($openTickets=$_user->getNumOpenTickets())
+                    && ($openTickets>=$cfg->getMaxOpenTickets()) ) {
+
+                $errors = array('err' => "You've reached the maximum open tickets allowed.");
+                $ost->logWarning('Ticket denied -'.$vars['email'],
+                        sprintf('Max open tickets (%d) reached for %s ',
+                            $cfg->getMaxOpenTickets(), $vars['email']));
+
+                return 0;
+            }
+        }
+
         //Init ticket filters...
         $ticket_filter = new TicketFilter($origin, $vars);
         // Make sure email contents should not be rejected
         if($ticket_filter
                 && ($filter=$ticket_filter->shouldReject())) {
-            $errors['err']='Ticket denied. Error #403';
-            $errors['errno'] = 403;
+            $errors = array(
+                    'errno' => 403,
+                    'err' => "This help desk is for use by authorized users
+                    only");
             $ost->logWarning('Ticket denied',
                     sprintf('Ticket rejected ( %s) by filter "%s"',
                         $vars['email'], $filter->getName()));