diff --git a/internal/postgres/details.go b/internal/postgres/details.go
index d565939..23a898c 100644
--- a/internal/postgres/details.go
+++ b/internal/postgres/details.go
@@ -108,8 +108,10 @@
 	if err := db.db.RunQuery(ctx, query, collect, modulePath, version); err != nil {
 		return nil, fmt.Errorf("DB.LegacyGetPackagesInModule(ctx, %q, %q): %w", modulePath, version, err)
 	}
-	if !db.bypassLicenseCheck {
-		for _, p := range packages {
+	for _, p := range packages {
+		if db.bypassLicenseCheck {
+			p.IsRedistributable = true
+		} else {
 			p.RemoveNonRedistributableData()
 		}
 	}
@@ -261,7 +263,9 @@
 		}
 		return nil, fmt.Errorf("row.Scan(): %v", err)
 	}
-	if !db.bypassLicenseCheck {
+	if db.bypassLicenseCheck {
+		mi.IsRedistributable = true
+	} else {
 		mi.RemoveNonRedistributableData()
 	}
 	return &mi, nil
diff --git a/internal/postgres/legacy_directory.go b/internal/postgres/legacy_directory.go
index 0d78ec4..019d8ae 100644
--- a/internal/postgres/legacy_directory.go
+++ b/internal/postgres/legacy_directory.go
@@ -133,7 +133,9 @@
 		LegacyModuleInfo: mi,
 		Packages:         packages,
 	}
-	if !db.bypassLicenseCheck {
+	if db.bypassLicenseCheck {
+		ld.IsRedistributable = true
+	} else {
 		ld.RemoveNonRedistributableData()
 	}
 	return ld, nil
diff --git a/internal/postgres/package.go b/internal/postgres/package.go
index 1318605..65c0757 100644
--- a/internal/postgres/package.go
+++ b/internal/postgres/package.go
@@ -143,7 +143,9 @@
 	}
 	pkg.Licenses = lics
 	pkg.DocumentationHTML = convertDocumentation(docHTML)
-	if !db.bypassLicenseCheck {
+	if db.bypassLicenseCheck {
+		pkg.IsRedistributable = true
+	} else {
 		pkg.RemoveNonRedistributableData()
 	}
 	return &pkg, nil
diff --git a/internal/postgres/unit.go b/internal/postgres/unit.go
index 5cc7762..41674f2 100644
--- a/internal/postgres/unit.go
+++ b/internal/postgres/unit.go
@@ -66,7 +66,9 @@
 		}
 		u.Subdirectories = pkgs
 	}
-	if !db.bypassLicenseCheck {
+	if db.bypassLicenseCheck {
+		u.IsRedistributable = true
+	} else {
 		u.RemoveNonRedistributableData()
 	}
 	return u, nil
@@ -227,8 +229,10 @@
 	if err := db.db.RunQuery(ctx, query, collect, modulePath, resolvedVersion); err != nil {
 		return nil, err
 	}
-	if !db.bypassLicenseCheck {
-		for _, p := range packages {
+	for _, p := range packages {
+		if db.bypassLicenseCheck {
+			p.IsRedistributable = true
+		} else {
 			p.RemoveNonRedistributableData()
 		}
 	}
diff --git a/internal/postgres/versionstate_test.go b/internal/postgres/versionstate_test.go
index f18b608..4d5be4b 100644
--- a/internal/postgres/versionstate_test.go
+++ b/internal/postgres/versionstate_test.go
@@ -144,7 +144,7 @@
 }
 
 func TestUpsertModuleVersionStates(t *testing.T) {
-	ctx, cancel := context.WithTimeout(context.Background(), testTimeout)
+	ctx, cancel := context.WithTimeout(context.Background(), testTimeout*2)
 	defer cancel()
 
 	m := sample.DefaultModule()
diff --git a/internal/proxydatasource/datasource.go b/internal/proxydatasource/datasource.go
index 9f3cfa9..f28d854 100644
--- a/internal/proxydatasource/datasource.go
+++ b/internal/proxydatasource/datasource.go
@@ -90,8 +90,15 @@
 	}
 	res := fetch.FetchModule(ctx, modulePath, version, ds.proxyClient, ds.sourceClient)
 	m := res.Module
-	if m != nil && !ds.bypassLicenseCheck {
-		m.RemoveNonRedistributableData()
+	if m != nil {
+		if ds.bypassLicenseCheck {
+			m.IsRedistributable = true
+			for _, pkg := range m.LegacyPackages {
+				pkg.IsRedistributable = true
+			}
+		} else {
+			m.RemoveNonRedistributableData()
+		}
 	}
 	ds.versionCache[key] = &versionEntry{module: m, err: err}
 	if res.Error != nil {
