diff --git a/internal/fetch/load.go b/internal/fetch/load.go
index eb9ce91..287c7fe 100644
--- a/internal/fetch/load.go
+++ b/internal/fetch/load.go
@@ -112,7 +112,7 @@
 	if err != nil {
 		return nil, err
 	}
-	docPkg := godoc.NewPackage(fset)
+	docPkg := godoc.NewPackage(fset, modInfo.ModulePackages)
 	var allGoFiles []*ast.File
 	for _, pf := range goFiles {
 		if experiment.IsActive(ctx, internal.ExperimentRemoveUnusedAST) {
diff --git a/internal/godoc/encode.go b/internal/godoc/encode.go
index a055e4d..2bd4315 100644
--- a/internal/godoc/encode.go
+++ b/internal/godoc/encode.go
@@ -96,7 +96,7 @@
 		return nil, fmt.Errorf("want initial bytes to be %q but they aren't", encodingType)
 	}
 	dec := gob.NewDecoder(bytes.NewReader(data[le:]))
-	p := NewPackage(token.NewFileSet())
+	p := &Package{Fset: token.NewFileSet()}
 	if err := p.Fset.Read(dec.Decode); err != nil {
 		return nil, err
 	}
diff --git a/internal/godoc/encode_test.go b/internal/godoc/encode_test.go
index 1433cd9..5e10c60 100644
--- a/internal/godoc/encode_test.go
+++ b/internal/godoc/encode_test.go
@@ -63,7 +63,7 @@
 	}
 	compareObjs(f)
 
-	p := NewPackage(fset)
+	p := NewPackage(fset, nil)
 	p.AddFile(f, false)
 	data, err := p.Encode()
 	if err != nil {
@@ -82,7 +82,7 @@
 	if err != nil {
 		return nil, err
 	}
-	p := NewPackage(fset)
+	p := NewPackage(fset, nil)
 	for _, pkg := range pkgs {
 		for _, f := range pkg.Files {
 			p.AddFile(f, removeNodes)
diff --git a/internal/godoc/godoc.go b/internal/godoc/godoc.go
index 173cfa7..6b62d76 100644
--- a/internal/godoc/godoc.go
+++ b/internal/godoc/godoc.go
@@ -17,7 +17,8 @@
 }
 
 type gobPackage struct { // fields that can be directly gob-encoded
-	Files []*File
+	Files              []*File
+	ModulePackagePaths map[string]bool
 }
 
 // A File contains everything needed about a source file to render documentation.
@@ -26,9 +27,14 @@
 	AST  *ast.File
 }
 
-// NewPackage returns a new Package with the given fset.
-func NewPackage(fset *token.FileSet) *Package {
-	return &Package{Fset: fset}
+// NewPackage returns a new Package with the given fset and set of module package paths.
+func NewPackage(fset *token.FileSet, modPaths map[string]bool) *Package {
+	return &Package{
+		Fset: fset,
+		gobPackage: gobPackage{
+			ModulePackagePaths: modPaths,
+		},
+	}
 }
 
 // AddFile adds a file to the Package. After it returns, the contents of the ast.File
