diff --git a/hgext/lfs/wrapper.py b/hgext/lfs/wrapper.py
--- a/hgext/lfs/wrapper.py
+++ b/hgext/lfs/wrapper.py
@@ -374,7 +374,12 @@ def pointersfromctx(ctx, removed=False):
     stored for the path is an empty dict.
     """
     result = {}
+    m = ctx.repo().narrowmatch()
+
+    # TODO: consider manifest.fastread() instead
     for f in ctx.files():
+        if not m(f):
+            continue
         p = pointerfromctx(ctx, f, removed=removed)
         if p is not None:
             result[f] = p
diff --git a/tests/test-narrow-strip.t b/tests/test-narrow-strip.t
--- a/tests/test-narrow-strip.t
+++ b/tests/test-narrow-strip.t
@@ -1,4 +1,12 @@
 #testcases flat tree
+#testcases lfs-on lfs-off
+
+#if lfs-on
+  $ cat >> $HGRCPATH <<EOF
+  > [extensions]
+  > lfs =
+  > EOF
+#endif
 
   $ . "$TESTDIR/narrow-library.sh"
 
diff --git a/tests/test-narrow.t b/tests/test-narrow.t
--- a/tests/test-narrow.t
+++ b/tests/test-narrow.t
@@ -1,4 +1,12 @@
 #testcases flat tree
+#testcases lfs-on lfs-off
+
+#if lfs-on
+  $ cat >> $HGRCPATH <<EOF
+  > [extensions]
+  > lfs =
+  > EOF
+#endif
 
   $ . "$TESTDIR/narrow-library.sh"