diff --git a/module/VuFind/src/VuFind/Search/Base/Params.php b/module/VuFind/src/VuFind/Search/Base/Params.php
index d035b0ff1169fbe5baf43ec5987a43239346f297..cb41f3086ad5d2b1cc14b5a8ac9e28840565abca 100644
--- a/module/VuFind/src/VuFind/Search/Base/Params.php
+++ b/module/VuFind/src/VuFind/Search/Base/Params.php
@@ -805,10 +805,11 @@ class Params
 
     /**
      * Detects if a filter is advanced (true) or simple (false). An advanced
-     * filter is currently defined as one surrounded by parentheses, while a
-     * simple filter is of the form field:value. Advanced filters are used to
-     * express more complex queries, such as combining multiple values from
-     * multiple fields using boolean operators.
+     * filter is currently defined as one surrounded by parentheses (possibly
+     * with a leading exclusion operator), while a simple filter is of the form
+     * field:value. Advanced filters are used to express more complex queries,
+     * such as combining multiple values from multiple fields using boolean
+     * operators.
      *
      * @param string $filter A filter string
      *
@@ -816,7 +817,7 @@ class Params
      */
     public function isAdvancedFilter($filter)
     {
-        if (substr($filter, 0, 1) == '(') {
+        if (substr($filter, 0, 1) == '('  || substr($filter, 0, 2) == '-(') {
             return true;
         }
         return false;