diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py
index 61888bd0b3005e34a032756495fc384f95a6e302_aGdleHQvZnNtb25pdG9yL19faW5pdF9fLnB5..ae7ad53d3c8d92049a63816786c2c8c7f7c175d9_aGdleHQvZnNtb25pdG9yL19faW5pdF9fLnB5 100644
--- a/hgext/fsmonitor/__init__.py
+++ b/hgext/fsmonitor/__init__.py
@@ -273,7 +273,11 @@
 
     matchfn = match.matchfn
     matchalways = match.always()
-    dmap = self._map._map
+    dmap = self._map
+    if util.safehasattr(dmap, '_map'):
+        # for better performance, directly access the inner dirstate map if the
+        # standard dirstate implementation is in use.
+        dmap = dmap._map
     nonnormalset = self._map.nonnormalset
 
     copymap = self._map.copymap