Index: modules/comment/views_handler_argument_comment_user_uid.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/modules/comment/views_handler_argument_comment_user_uid.inc,v
retrieving revision 1.1
diff -u -r1.1 views_handler_argument_comment_user_uid.inc
--- modules/comment/views_handler_argument_comment_user_uid.inc	3 Sep 2008 19:21:29 -0000	1.1
+++ modules/comment/views_handler_argument_comment_user_uid.inc	11 Apr 2009 03:02:23 -0000
@@ -36,6 +36,6 @@
 
   function query() {
     $this->ensure_my_table();
-    $this->query->add_where(0, "$this->table_alias.uid = %d OR (SELECT COUNT(*) FROM {comments} c WHERE c.uid = %d AND c.nid = $this->table_alias.nid)", $this->argument, $this->argument);
+    $this->query->add_where(0, "$this->table_alias.uid {$this->where_operator()} %d OR (SELECT COUNT(*) FROM {comments} c WHERE c.uid {$this->where_operator()} %d AND c.nid = $this->table_alias.nid)", $this->argument, $this->argument);
   }
 }
Index: handlers/views_handler_argument.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/handlers/views_handler_argument.inc,v
retrieving revision 1.7
diff -u -r1.7 views_handler_argument.inc
--- handlers/views_handler_argument.inc	20 Feb 2009 20:12:38 -0000	1.7
+++ handlers/views_handler_argument.inc	11 Apr 2009 03:02:19 -0000
@@ -105,6 +105,7 @@
     $options['default_argument'] = array('default' => '');
     $options['validate_type'] = array('default' => 'none');
     $options['validate_fail'] = array('default' => 'not found');
+    $options['not'] = array('default' => FALSE);
 
     return $options;
   }
@@ -234,6 +235,13 @@
     $form['validate_options_div_suffix'] = array(
       '#value' => '</fieldset>',
     );
+    
+    $form['not'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Exclude the argument'),
+      '#description' => t('If selected, the values entered in the argument will be excluded rather than limiting the view.'),
+      '#default_value' => !empty($this->options['not']),
+    );
   }
 
   /**
@@ -582,6 +590,21 @@
   }
 
   /**
+   * Get the operator to use when adding this argument to the query.
+   * 
+   * @param $not
+   *   When TRUE, will return 'NOT' or '', instead of '<>' or '='.
+   */
+  function where_operator($not = FALSE) {
+    if ($not) {
+      return empty($this->options['not']) ? '' : 'NOT';
+    }
+    else {
+      return empty($this->options['not']) ? '=' : '<>';
+    } 
+  }
+  
+  /**
    * Set up the query for this argument.
    *
    * The argument sent may be found at $this->argument.
@@ -589,7 +612,7 @@
   function query() {
     $this->ensure_my_table();
     $placeholder = empty($this->definition['numeric']) ? "'%s'" : '%d';
-    $this->query->add_where(0, "$this->table_alias.$this->real_field = $placeholder", $this->argument);
+    $this->query->add_where(0, "$this->table_alias.$this->real_field {$this->where_operator()} $placeholder", $this->argument);
   }
 
   /**
Index: handlers/views_handler_argument_string.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/handlers/views_handler_argument_string.inc,v
retrieving revision 1.4
diff -u -r1.4 views_handler_argument_string.inc
--- handlers/views_handler_argument_string.inc	7 Jan 2009 21:30:31 -0000	1.4
+++ handlers/views_handler_argument_string.inc	11 Apr 2009 03:02:20 -0000
@@ -167,7 +167,7 @@
       $field = $this->get_formula();
     }
 
-    $this->query->add_where(0, "$field = '%s'", $argument);
+    $this->query->add_where(0, "$field {$this->where_operator()} '%s'", $argument);
   }
 
   function summary_argument($data) {
Index: handlers/views_handler_argument_many_to_one.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/handlers/views_handler_argument_many_to_one.inc,v
retrieving revision 1.1
diff -u -r1.1 views_handler_argument_many_to_one.inc
--- handlers/views_handler_argument_many_to_one.inc	3 Sep 2008 19:21:28 -0000	1.1
+++ handlers/views_handler_argument_many_to_one.inc	11 Apr 2009 03:02:20 -0000
@@ -75,7 +75,7 @@
   function query() {
     if (empty($this->argument)) {
       parent::ensure_my_table();
-      $this->query->add_where(0, "$this->table_alias.$this->real_field IS NULL");
+      $this->query->add_where(0, "$this->table_alias.$this->real_field IS {$this->where_operator(TRUE)} NULL");
       return;
     }
 
Index: handlers/views_handler_argument_formula.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/handlers/views_handler_argument_formula.inc,v
retrieving revision 1.1
diff -u -r1.1 views_handler_argument_formula.inc
--- handlers/views_handler_argument_formula.inc	3 Sep 2008 19:21:28 -0000	1.1
+++ handlers/views_handler_argument_formula.inc	11 Apr 2009 03:02:20 -0000
@@ -50,6 +50,6 @@
     // Now that our table is secure, get our formula.
     $formula = $this->get_formula();
 
-    $this->query->add_where(0, "$formula = '%s'", $this->argument);
+    $this->query->add_where(0, "$formula {$this->where_operator()} '%s'", $this->argument);
   }
 }
Index: handlers/views_handler_argument_numeric.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/handlers/views_handler_argument_numeric.inc,v
retrieving revision 1.1
diff -u -r1.1 views_handler_argument_numeric.inc
--- handlers/views_handler_argument_numeric.inc	3 Sep 2008 19:21:28 -0000	1.1
+++ handlers/views_handler_argument_numeric.inc	11 Apr 2009 03:02:20 -0000
@@ -16,7 +16,6 @@
     $options = parent::option_definition();
 
     $options['break_phrase'] = array('default' => FALSE);
-    $options['not'] = array('default' => FALSE);
 
     return $options;
   }
@@ -31,13 +30,6 @@
       '#description' => t('If selected, users can enter multiple arguments in the form of 1+2+3 or 1,2,3.'),
       '#default_value' => !empty($this->options['break_phrase']),
     );
-
-    $form['not'] = array(
-      '#type' => 'checkbox',
-      '#title' => t('Exclude the argument'),
-      '#description' => t('If selected, the numbers entered in the argument will be excluded rather than limiting the view.'),
-      '#default_value' => !empty($this->options['not']),
-    );
   }
 
   function title() {
@@ -82,13 +74,11 @@
     }
 
     if (count($this->value) > 1) {
-      $operator = empty($this->options['not']) ? 'IN' : 'NOT IN';
       $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
-      $this->query->add_where(0, "$this->table_alias.$this->real_field $operator ($placeholders)", $this->value);
+      $this->query->add_where(0, "$this->table_alias.$this->real_field {$this->where_operator(TRUE)} IN ($placeholders)", $this->value);
     }
     else {
-      $operator = empty($this->options['not']) ? '=' : '!=';
-      $this->query->add_where(0, "$this->table_alias.$this->real_field $operator %d", $this->argument);
+      $this->query->add_where(0, "$this->table_alias.$this->real_field {$this->where_operator()} %d", $this->argument);
     }
   }
 }
Index: includes/handlers.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/includes/handlers.inc,v
retrieving revision 1.109
diff -u -r1.109 handlers.inc
--- includes/handlers.inc	10 Apr 2009 20:22:54 -0000	1.109
+++ includes/handlers.inc	11 Apr 2009 03:02:22 -0000
@@ -766,7 +766,8 @@
       $group = empty($options['group']) ? 0 : $options['group'];
 
       // implode on either AND or OR.
-      $this->handler->query->add_where($group, implode(' ' . strtoupper($operator) . ' ', $clauses), $this->handler->value);
+      $not = empty($this->handler->options['not']) ? '' : 'NOT';
+      $this->handler->query->add_where($group, "$not (". implode(' ' . strtoupper($operator) . ' ', $clauses) .")", $this->handler->value);
     }
   }
 }
Index: modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/views/modules/taxonomy/views_handler_argument_term_node_tid_depth.inc,v
retrieving revision 1.1
diff -u -r1.1 views_handler_argument_term_node_tid_depth.inc
--- modules/taxonomy/views_handler_argument_term_node_tid_depth.inc	3 Sep 2008 19:21:30 -0000	1.1
+++ modules/taxonomy/views_handler_argument_term_node_tid_depth.inc	11 Apr 2009 03:02:23 -0000
@@ -77,16 +77,16 @@
       }
 
       if (count($tids->value) > 1) {
-        $placeholder = " IN (" . implode(', ', array_fill(0, sizeof($tids->value), '%d')) . ")";
+        $placeholder = " {$this->where_operator(TRUE)} IN (" . implode(', ', array_fill(0, sizeof($tids->value), '%d')) . ")";
       }
       else {
-        $placeholder = " = %d";
+        $placeholder = " {$this->where_operator()} %d";
       }
 
       $tids = $tids->value;
     }
     else {
-      $placeholder = "= %d";
+      $placeholder = "{$this->where_operator()} %d";
       $tids = array($this->argument);
     }
     $subquery = "\n  SELECT tn.vid FROM {term_node} tn\n";
@@ -113,7 +113,7 @@
       }
     }
 
-    $this->query->add_where(0, "$this->table_alias.$this->real_field IN ($subquery$where  )", $args);
+    $this->query->add_where(0, "$this->table_alias.$this->real_field {$this->where_operator(TRUE)} IN ($subquery$where  )", $args);
   }
 
   function title() {
