diff --git a/src/main/java/org/apache/sling/dynamicinclude/Configuration.java b/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
index ce09163..0fa523a 100755
--- a/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
+++ b/src/main/java/org/apache/sling/dynamicinclude/Configuration.java
@@ -20,6 +20,8 @@
 package org.apache.sling.dynamicinclude;
 
 import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashSet;
 import java.util.List;
 
 import org.apache.commons.lang3.ArrayUtils;
@@ -121,7 +123,7 @@
 
   private boolean disableIgnoreUrlParams;
 
-  private List<String> ignoreUrlParams;
+  private Collection<String> ignoreUrlParams;
 
   private boolean rewritePath;
 
@@ -147,8 +149,9 @@
     addComment = cfg.include$_$filter_config_add__comment();
     includeTypeName = cfg.include$_$filter_config_include$_$type();
     requiredHeader = cfg.include$_$filter_config_required__header();
-    ignoreUrlParams = Arrays.asList(PropertiesUtil.toStringArray(cfg.include$_$filter_config_ignoreUrlParams(),
-        new String[0]));
+    ignoreUrlParams = new HashSet<>(
+            Arrays.asList(PropertiesUtil.toStringArray(cfg.include$_$filter_config_ignoreUrlParams(), new String[0]))
+    );
     rewritePath = cfg.include$_$filter_config_rewrite();
     appendSuffix = cfg.include$_$filter_config_appendSuffix();
     disableIgnoreUrlParams = cfg.include$_$filter_config_disableIgnoreUrlParams();
@@ -219,7 +222,7 @@
     return requiredHeader;
   }
 
-  public List<String> getIgnoreUrlParams() {
+  public Collection<String> getIgnoreUrlParams() {
     return ignoreUrlParams;
   }
 
diff --git a/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java b/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java
index d860549..b43568a 100644
--- a/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java
+++ b/src/main/java/org/apache/sling/dynamicinclude/IncludeTagFilter.java
@@ -23,6 +23,7 @@
 import java.io.PrintWriter;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.util.Collection;
 import java.util.Enumeration;
 import java.util.List;
 
@@ -113,7 +114,7 @@
         return StringUtils.isBlank(requiredHeader) || containsHeader(requiredHeader, request);
     }
 
-    private boolean requestHasParameters(List<String> ignoreUrlParams, SlingHttpServletRequest request) {
+    private boolean requestHasParameters(Collection<String> ignoreUrlParams, SlingHttpServletRequest request) {
         final Enumeration<?> paramNames = request.getParameterNames();
         while (paramNames.hasMoreElements()) {
             final String paramName = (String) paramNames.nextElement();
