diff --git a/vendor/cmd/go/internal/vgo/load.go b/vendor/cmd/go/internal/vgo/load.go
index 28fbab3..ad5c6b8 100644
--- a/vendor/cmd/go/internal/vgo/load.go
+++ b/vendor/cmd/go/internal/vgo/load.go
@@ -433,7 +433,7 @@
 				if err != nil {
 					return cached{nil, err}
 				}
-				if mv1.Version == "" {
+				if mv1.Version == "none" {
 					return cached{nil, fmt.Errorf("%s(%s) depends on excluded %s(%s) with no newer version available", mod.Path, mod.Version, mv.Path, mv.Version)}
 				}
 				mv = mv1
diff --git a/vendor/cmd/go/vgo_test.go b/vendor/cmd/go/vgo_test.go
index ce16d29..e13c7df 100644
--- a/vendor/cmd/go/vgo_test.go
+++ b/vendor/cmd/go/vgo_test.go
@@ -565,6 +565,42 @@
 	tg.grepStderr("github.com/gorilla/mux@v1.6.0 excluded", "print version excluded")
 }
 
+func TestRequireExcluded(t *testing.T) {
+	tg := testgo(t)
+	defer tg.cleanup()
+	tg.makeTempdir()
+
+	tg.must(os.MkdirAll(tg.path("x"), 0777))
+	tg.must(ioutil.WriteFile(tg.path("x/x.go"), []byte(`package x; import _ "github.com/gorilla/mux"`), 0666))
+
+	tg.setenv(homeEnvName(), tg.path("home"))
+	tg.cd(tg.path("x"))
+
+	tg.must(ioutil.WriteFile(tg.path("x/go.mod"), []byte(`
+		module x
+		exclude github.com/gorilla/mux latest
+		require github.com/gorilla/mux latest
+	`), 0666))
+	tg.runFail("-vgo", "build")
+	tg.grepStderr("no newer version available", "only available version excluded")
+
+	tg.must(ioutil.WriteFile(tg.path("x/go.mod"), []byte(`
+		module x
+		exclude github.com/gorilla/mux v1.6.1
+		require github.com/gorilla/mux v1.6.1
+	`), 0666))
+	tg.run("-vgo", "build")
+	tg.grepStderr("finding github.com/gorilla/mux v1.6.2", "find version 1.6.2")
+
+	tg.must(ioutil.WriteFile(tg.path("x/go.mod"), []byte(`
+		module x
+		exclude github.com/gorilla/mux v1.6.2
+		require github.com/gorilla/mux v1.6.1
+	`), 0666))
+	tg.run("-vgo", "build")
+	tg.grepStderr("finding github.com/gorilla/mux v1.6.1", "find version 1.6.1")
+}
+
 func TestConvertLegacyConfig(t *testing.T) {
 	testenv.MustHaveExternalNetwork(t)
 	tg := testgo(t)
