diff --git a/module/VuFind/src/VuFind/OAI/Server.php b/module/VuFind/src/VuFind/OAI/Server.php
index 4a179aaab9fc54be51f40951ba0aaa9c79d61872..26ee04b50fd128fc72bb9c9e7c02dd97432bb822 100644
--- a/module/VuFind/src/VuFind/OAI/Server.php
+++ b/module/VuFind/src/VuFind/OAI/Server.php
@@ -732,9 +732,9 @@ class Server
         // Apply filters as needed.
         if (!empty($set)) {
             if (isset($this->setQueries[$set])) {
-                // use hidden filter here to allow for complex queries;
-                // plain old addFilter expects simple field:value queries.
-                $params->addHiddenFilter($this->setQueries[$set]);
+                // Put parentheses around the query so that it does not get
+                // parsed as a simple field:value filter.
+                $params->addFilter('(' . $this->setQueries[$set] . ')');
             } elseif (null !== $this->setField) {
                 $params->addFilter(
                     $this->setField . ':"' . addcslashes($set, '"') . '"'