diff --git a/src/cmd/compile/internal/gc/lang_test.go b/src/cmd/compile/internal/gc/lang_test.go
index b225f03a1de1f233d222fb5acc375977057d5d82..72e7f07a21c0028ce8a6352cc63ae2a2584d08a5 100644
--- a/src/cmd/compile/internal/gc/lang_test.go
+++ b/src/cmd/compile/internal/gc/lang_test.go
@@ -41,6 +41,11 @@ func TestInvalidLang(t *testing.T) {
 		t.Error("compilation with -lang=go9.99 succeeded unexpectedly")
 	}
 
+	// This test will have to be adjusted if we ever reach 1.99 or 2.0.
+	if testLang(t, "go1.99", src, outfile) == nil {
+		t.Error("compilation with -lang=go1.99 succeeded unexpectedly")
+	}
+
 	if testLang(t, "go1.8", src, outfile) == nil {
 		t.Error("compilation with -lang=go1.8 succeeded unexpectedly")
 	}
diff --git a/src/cmd/compile/internal/gc/main.go b/src/cmd/compile/internal/gc/main.go
index e5d42bfd7da1549dd2c3c1983c67875da344bc87..44c540492b0927c5c0162f629abd82f256415145 100644
--- a/src/cmd/compile/internal/gc/main.go
+++ b/src/cmd/compile/internal/gc/main.go
@@ -1444,7 +1444,7 @@ func checkLang() {
 		if err != nil {
 			log.Fatalf("internal error parsing default lang %q: %v", def, err)
 		}
-		if langWant.major > defVers.major || (langWant.major == defVers.major && langWant.major > defVers.minor) {
+		if langWant.major > defVers.major || (langWant.major == defVers.major && langWant.minor > defVers.minor) {
 			log.Fatalf("invalid value %q for -lang: max known version is %q", flag_lang, def)
 		}
 	}