diff --git a/zip/vendor_test.go b/zip/vendor_test.go
new file mode 100644
index 0000000..5eb9535
--- /dev/null
+++ b/zip/vendor_test.go
@@ -0,0 +1,39 @@
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package zip
+
+import "testing"
+
+func TestIsVendoredPackage(t *testing.T) {
+	for _, tc := range []struct {
+		path          string
+		want          bool
+		falsePositive bool // is this case affected by https://golang.org/issue/37397?
+	}{
+		{path: "vendor/foo/foo.go", want: true},
+		{path: "pkg/vendor/foo/foo.go", want: true},
+		{path: "longpackagename/vendor/foo/foo.go", want: true},
+
+		{path: "vendor/vendor.go", want: false},
+
+		// We ideally want these cases to be false, but they are affected by
+		// https://golang.org/issue/37397, and if we fix them we will invalidate
+		// existing module checksums. We must leave them as-is-for now.
+		{path: "pkg/vendor/vendor.go", falsePositive: true},
+		{path: "longpackagename/vendor/vendor.go", falsePositive: true},
+	} {
+		got := isVendoredPackage(tc.path)
+		want := tc.want
+		if tc.falsePositive {
+			want = true
+		}
+		if got != want {
+			t.Errorf("isVendoredPackage(%q) = %t; want %t", tc.path, got, tc.want)
+			if tc.falsePositive {
+				t.Logf("(Expected a false-positive due to https://golang.org/issue/37397.)")
+			}
+		}
+	}
+}
diff --git a/zip/zip.go b/zip/zip.go
index 6bdc01f..6865895 100644
--- a/zip/zip.go
+++ b/zip/zip.go
@@ -316,6 +316,12 @@
 func (f dirFile) Lstat() (os.FileInfo, error)  { return f.info, nil }
 func (f dirFile) Open() (io.ReadCloser, error) { return os.Open(f.filePath) }
 
+// isVendoredPackage attempts to report whether the given filename is contained
+// in a package whose import path contains (but does not end with) the component
+// "vendor".
+//
+// Unfortunately, isVendoredPackage reports false positives for files in any
+// non-top-level package whose import path ends in "vendor".
 func isVendoredPackage(name string) bool {
 	var i int
 	if strings.HasPrefix(name, "vendor/") {
@@ -325,15 +331,8 @@
 		//
 		// 	i = j + len("/vendor/")
 		//
-		// (See https://golang.org/issue/31562.)
-		//
-		// Unfortunately, we can't fix it without invalidating checksums.
-		// Fortunately, the error appears to be strictly conservative: we'll retain
-		// vendored packages that we should have pruned, but we won't prune
-		// non-vendored packages that we should have retained.
-		//
-		// Since this defect doesn't seem to break anything, it's not worth fixing
-		// for now.
+		// (See https://golang.org/issue/31562 and https://golang.org/issue/37397.)
+		// Unfortunately, we can't fix it without invalidating module checksums.
 		i += len("/vendor/")
 	} else {
 		return false
