diff --git a/mercurial/fileset.py b/mercurial/fileset.py
index bf6bc468138342ebc6eb6f2f8d9519148372b18c_bWVyY3VyaWFsL2ZpbGVzZXQucHk=..19ac0d8ee9a20e76dc6b0e9d1f976c2996ba53a9_bWVyY3VyaWFsL2ZpbGVzZXQucHk= 100644
--- a/mercurial/fileset.py
+++ b/mercurial/fileset.py
@@ -27,7 +27,7 @@
 
 keywords = set(['and', 'or', 'not'])
 
-globchars = ".*{}[]?/\\"
+globchars = ".*{}[]?/\\_"
 
 def tokenize(program):
     pos, l = 0, len(program)
diff --git a/tests/test-fileset.t b/tests/test-fileset.t
index bf6bc468138342ebc6eb6f2f8d9519148372b18c_dGVzdHMvdGVzdC1maWxlc2V0LnQ=..19ac0d8ee9a20e76dc6b0e9d1f976c2996ba53a9_dGVzdHMvdGVzdC1maWxlc2V0LnQ= 100644
--- a/tests/test-fileset.t
+++ b/tests/test-fileset.t
@@ -42,6 +42,7 @@
   b2
   $ fileset 'a* - a1'
   a2
+  $ fileset 'a_b'
 
 Test files status