diff --git a/Changes b/Changes
index 07571a5..138ffe1 100644
--- a/Changes
+++ b/Changes
@@ -1,16 +1,21 @@
+0.49 2026-05-04
+    - [security] Dependencies updated	
+    - [cleanup] Silence error listeners in PQ test suite
+      (diewald; AI-assisted Claude Opus 4.6)
+
 0.48 2025-11-17
-     - [security] Update to Java 21.
+    - [security] Update to Java 21.
 
 0.47 2025-10-16
-	- [enhancement] Add apiVersion for QuerySerializer, CorpusQuery-, 
-	  Poliqarp- and CQP processors.
+  	- [enhancement] Add apiVersion for QuerySerializer, CorpusQuery-, 
+	    Poliqarp- and CQP processors.
 	  
 0.46 2025-08-06
     - [security] Dependencies updated	
 	
 0.45 2025-05-23
-     - [bugfix] Fix running QuerySerializer via commandline 
-     - [feature] Add serializing corpus query via commandline
+    - [bugfix] Fix running QuerySerializer via commandline 
+    - [feature] Add serializing corpus query via commandline
 
 0.44 2024-07-12
     - [security] Dependencies updated
diff --git a/pom.xml b/pom.xml
index cd30713..c6e38e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
 
 	<groupId>de.ids-mannheim.korap.koral</groupId>
 	<artifactId>Koral</artifactId>
-	<version>0.48</version>
+	<version>0.49</version>
 	<packaging>jar</packaging>
 	<name>Koral</name>
 	<url>https://korap.ids-mannheim.de</url>
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessor.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessor.java
index dd0c7a5..a13febb 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessor.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessor.java
@@ -645,9 +645,8 @@
         }
         // Some things went wrong ...
         catch (Exception e) {
-            System.err
-                    .println("ERROR: " + errorListener.generateFullErrorMsg());
-            System.err.println("Parsing exception message: " + e);
+            log.error("ERROR: {}", errorListener.generateFullErrorMsg());
+            log.error("Parsing exception message: {}", e.getMessage());
         }
         // Return the generated tree
         return tree;
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/poliqarpplus/PQGrammarTest.java b/src/test/java/de/ids_mannheim/korap/query/test/poliqarpplus/PQGrammarTest.java
index 2b45c6a..14f1a76 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/poliqarpplus/PQGrammarTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/poliqarpplus/PQGrammarTest.java
@@ -5,7 +5,7 @@
 
 import de.ids_mannheim.korap.query.parse.poliqarpplus.PoliqarpPlusLexer;
 import de.ids_mannheim.korap.query.parse.poliqarpplus.PoliqarpPlusParser;
-
+import de.ids_mannheim.korap.query.serialize.util.Antlr4DescriptiveErrorListener;
 
 import org.antlr.v4.runtime.*;
 import org.antlr.v4.runtime.tree.*;
@@ -92,8 +92,14 @@
         try {
             Method startRule = PoliqarpPlusParser.class.getMethod("request");
             ANTLRInputStream input = new ANTLRInputStream(query);
+            Antlr4DescriptiveErrorListener errorListener = new Antlr4DescriptiveErrorListener(
+                query);
             lexer.setInputStream(input);
+            lexer.removeErrorListeners();
+            lexer.addErrorListener(errorListener);
             PoliqarpPlusParser parser = new PoliqarpPlusParser(new CommonTokenStream(lexer));
+            parser.removeErrorListeners();
+            parser.addErrorListener(errorListener);
 
             // Get starting rule from parser
             tree = (ParserRuleContext) startRule.invoke(parser, (Object[]) null);
