diff --git a/mod.go b/mod.go
new file mode 100644
index 0000000..6f523a2
--- /dev/null
+++ b/mod.go
@@ -0,0 +1,36 @@
+// Copyright 2024 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 main
+
+import (
+	"context"
+	"fmt"
+	"os"
+	"os/exec"
+	"strings"
+)
+
+func modTidy(ctx context.Context, dir, goPath string) (output string, execErr error) {
+	cmd := exec.Command("go", "mod", "tidy")
+	cmd.Dir = dir
+	cmd.Env = append(os.Environ(), "CGO_ENABLED=0", "GOPATH="+goPath)
+	cmd.Env = append(cmd.Env,
+		"GO111MODULE=on",
+		"GOPROXY="+playgroundGoproxy(),
+	)
+	out, err := cmd.CombinedOutput()
+	if err == nil {
+		return "", nil
+	}
+	if _, ok := err.(*exec.ExitError); !ok {
+		return "", fmt.Errorf("error vetting go source: %v", err)
+	}
+
+	// Rewrite compiler errors to refer to progName
+	// instead of '/tmp/sandbox1234/main.go'.
+	errs := strings.Replace(string(out), dir, "", -1)
+
+	return errs, nil
+}
diff --git a/sandbox.go b/sandbox.go
index c081e06..b009c74 100644
--- a/sandbox.go
+++ b/sandbox.go
@@ -460,7 +460,6 @@
 	// Create a GOPATH just for modules to be downloaded
 	// into GOPATH/pkg/mod.
 	cmd.Args = append(cmd.Args, "-modcacherw")
-	cmd.Args = append(cmd.Args, "-mod=mod")
 	br.goPath, err = os.MkdirTemp("", "gopath")
 	if err != nil {
 		log.Printf("error creating temp directory: %v", err)
@@ -472,6 +471,12 @@
 	out := &bytes.Buffer{}
 	cmd.Stderr, cmd.Stdout = out, out
 
+	// Run "go mod tidy" before executing a command.
+	_, err = modTidy(ctx, tmpDir, br.goPath)
+	if err != nil {
+		return nil, fmt.Errorf("error running go mod tidy: %v", err)
+	}
+
 	if err := cmd.Start(); err != nil {
 		return nil, fmt.Errorf("error starting go build: %v", err)
 	}
diff --git a/tests.go b/tests.go
index 46731a6..aa59aa0 100644
--- a/tests.go
+++ b/tests.go
@@ -633,4 +633,40 @@
 `, errors: `./foo.go:6:2: syntax error: unexpected =, expecting }
 `,
 	},
+	{
+		name: "workspace",
+		prog: `
+package main
+
+import "internal/bar"
+
+func main() {
+	bar.Print()
+}
+-- go.work --
+go 1.18
+
+use (
+	.
+	./projects/bar
+)
+-- go.mod --
+module internal/foo
+
+go 1.18
+
+require internal/bar v0.0.0
+-- projects/bar/go.mod --
+module internal/bar
+
+go 1.18
+-- projects/bar/upper.go --
+package bar
+
+import "fmt"
+
+func Print() {
+	fmt.Println("bar")
+}
+`, want: "bar\n"},
 }
diff --git a/vet.go b/vet.go
index d58c0f7..ae9043a 100644
--- a/vet.go
+++ b/vet.go
@@ -62,7 +62,7 @@
 			mGoVetLatency.M(float64(time.Since(start))/float64(time.Millisecond)))
 	}()
 
-	cmd := exec.Command("go", "vet", "--tags=faketime", "--mod=mod")
+	cmd := exec.Command("go", "vet", "--tags=faketime")
 	cmd.Dir = dir
 	// Linux go binary is not built with CGO_ENABLED=0.
 	// Prevent vet to compile packages in cgo mode.
