diff --git a/mercurial/manifest.py b/mercurial/manifest.py
--- a/mercurial/manifest.py
+++ b/mercurial/manifest.py
@@ -350,12 +350,9 @@ class manifest(revlog.revlog):
     def find(self, node, f):
         '''look up entry for a single file efficiently.
         return (node, flags) pair if found, (None, None) if not.'''
-        if node in self._mancache:
-            m = self._mancache[node][0]
-            return m.get(f), m.flags(f)
-        text = self.revision(node)
+        m = self.read(node)
         try:
-            return manifestdict(text).find(f)
+            return m.find(f)
         except KeyError:
             return None, None