diff --git a/mercurial/fileset.py b/mercurial/fileset.py
index 3c32a3fdfd16a43fceb5ab4c79658cd2b03b0232_bWVyY3VyaWFsL2ZpbGVzZXQucHk=..2f881e7d1ade0956f4fde9377d507ee3c6e9451f_bWVyY3VyaWFsL2ZpbGVzZXQucHk= 100644
--- a/mercurial/fileset.py
+++ b/mercurial/fileset.py
@@ -474,7 +474,7 @@
 }
 
 class matchctx(object):
-    def __init__(self, ctx, subset=None, status=None):
+    def __init__(self, ctx, subset, status=None):
         self.ctx = ctx
         self.subset = subset
         self._status = status
@@ -501,7 +501,8 @@
 class fullmatchctx(matchctx):
     """A match context where any files in any revisions should be valid"""
 
-    def __init__(self, ctx, subset=None, status=None):
+    def __init__(self, ctx, status=None):
+        subset = _buildsubset(ctx, status)
         super(fullmatchctx, self).__init__(ctx, subset, status)
 
 def _intree(funcs, tree):
@@ -540,8 +541,7 @@
     else:
         status = None
 
-    subset = _buildsubset(ctx, status)
-    return getset(fullmatchctx(ctx, subset, status), tree)
+    return getset(fullmatchctx(ctx, status), tree)
 
 def prettyformat(tree):
     return parser.prettyformat(tree, ('string', 'symbol'))