diff -urN views/views_query.inc views_neu/views_query.inc --- views/views_query.inc 2006-06-26 03:03:01.000000000 +0200 +++ views_neu/views_query.inc 2006-07-19 21:09:06.000000000 +0200 @@ -119,14 +119,17 @@ } else if (is_array($filter['value']) && count($filter['value'])) { if ($filter['operator'] == 'OR' || $filter['operator'] == 'NOR') { - $not = ''; - if ($filter['operator'] == 'NOR') { - $not = "NOT"; - } $query->ensure_table($table); $where_args = array_merge(array($table, $field), $filter['value']); $placeholder = array_fill(0, count($filter['value']), '%s'); - $query->add_where("%s.%s $not IN ('". implode("','", $placeholder) ."')", $where_args); + if ($filter['operator'] == 'OR') { + $query->add_where("%s.%s IN ('". implode("','", $placeholder) ."')", $where_args); + } + else { + $where_args[] = $where_args[0]; + $where_args[] = $where_args[1]; + $query->add_where("(%s.%s NOT IN ('". implode("','", $placeholder) ."') OR %s.%s IS NULL)", $where_args); + } } else { $howmany = count($filter['value']);