diff --git a/include/class.filter.php b/include/class.filter.php
index 319f7c0dcd67832321ca550246b1498ef8367945..3f01e5d0ea7e5b4b7be2b12ca56109d234e51edc 100644
--- a/include/class.filter.php
+++ b/include/class.filter.php
@@ -258,6 +258,7 @@ class Filter {
             return false;
 
         foreach ($this->getRules() as $rule) {
+            if (!isset($how[$rule['h']])) continue;
             list($func, $pos, $neg) = $how[$rule['h']];
             # TODO: convert $what and $rule['v'] to mb_strtoupper and do
             #       case-sensitive, binary-safe comparisons. Would be really
diff --git a/include/class.ticket.php b/include/class.ticket.php
index fc6499529e616f9f1eea0557a916d64e93e92299..5565cfc2b898c54d59be5c924be7b65b88bad9f0 100644
--- a/include/class.ticket.php
+++ b/include/class.ticket.php
@@ -1891,7 +1891,8 @@ class Ticket {
         // fields into local scope for filtering and banning purposes
         $user_form = UserForm::getInstance();
         $user_info = $user_form->getClean();
-        $vars += $user_info;
+        if ($user_form->isValid())
+            $vars += $user_info;
 
         //Check for 403
         if ($vars['email']  && Validator::is_email($vars['email'])) {