Index: lib/matcher.js
===================================================================
--- a/lib/matcher.js
+++ b/lib/matcher.js
@@ -18,17 +18,17 @@
 "use strict";
 
 /**
  * @fileOverview Matcher class implementing matching addresses against
  *               a list of filters.
  */
 
 const {RegExpFilter, WhitelistFilter} = require("./filterClasses");
-const {suffixes} = require("./domain");
+const {normalizeHostname, suffixes} = require("./domain");
 
 /**
  * Regular expression for matching a keyword in a filter.
  * @type {RegExp}
  */
 const keywordRegExp = /[^a-z0-9%*][a-z0-9%]{3,}(?=[^a-z0-9%*])/;
 
 /**
@@ -494,27 +494,20 @@
             return filtersByDomain;
 
           collection.push(filtersByDomain);
         }
 
         return null;
       }
 
-      if (docDomain)
-      {
-        if (docDomain[docDomain.length - 1] == ".")
-          docDomain = docDomain.replace(/\.+$/, "");
-
-        docDomain = docDomain.toLowerCase();
-      }
-
       let excluded = new Set();
 
-      for (let suffix of suffixes(docDomain || "", !specificOnly))
+      for (let suffix of suffixes(docDomain ? normalizeHostname(docDomain) : "",
+                                  !specificOnly))
       {
         let filters = filtersByDomain.get(suffix);
         if (filters)
         {
           for (let [filter, include] of filters.entries())
           {
             if (!include)
             {
