diff --git a/cc/ndk_library.go b/cc/ndk_library.go
index 5a76666..db96325 100644
--- a/cc/ndk_library.go
+++ b/cc/ndk_library.go
@@ -156,11 +156,11 @@
 	return strconv.Atoi(firstSupportedVersion)
 }
 
-func shouldUseVersionScript(stub *stubDecorator) (bool, error) {
-	// unversioned_until is normally empty, in which case we should use the version script.
-	if String(stub.properties.Unversioned_until) == "" {
-		return true, nil
-	}
+func shouldUseVersionScript(ctx android.BaseContext, stub *stubDecorator) (bool, error) {
+	// https://github.com/android-ndk/ndk/issues/622
+	// The loader spews warnings to stderr on L-MR1 when loading a library that
+	// has symbol versioning.
+	firstVersionSupportingRelease := 23
 
 	if String(stub.properties.Unversioned_until) == "current" {
 		if stub.properties.ApiLevel == "current" {
@@ -174,16 +174,31 @@
 		return true, nil
 	}
 
-	unversionedUntil, err := strconv.Atoi(String(stub.properties.Unversioned_until))
+	version, err := android.ApiStrToNum(ctx, stub.properties.ApiLevel)
 	if err != nil {
 		return true, err
 	}
 
-	version, err := strconv.Atoi(stub.properties.ApiLevel)
+	// unversioned_until is normally empty, in which case we use the version
+	// script as long as we are on a supported API level.
+	if String(stub.properties.Unversioned_until) == "" {
+		return version >= firstVersionSupportingRelease, nil
+	}
+
+	unversionedUntil, err := android.ApiStrToNum(ctx, String(stub.properties.Unversioned_until))
 	if err != nil {
 		return true, err
 	}
 
+	if unversionedUntil < firstVersionSupportingRelease {
+		return true, fmt.Errorf("unversioned_until must be at least %d",
+			firstVersionSupportingRelease)
+	}
+
+	if version < firstVersionSupportingRelease {
+		return false, nil
+	}
+
 	return version >= unversionedUntil, nil
 }
 
@@ -318,7 +333,7 @@
 func (stub *stubDecorator) link(ctx ModuleContext, flags Flags, deps PathDeps,
 	objs Objects) android.Path {
 
-	useVersionScript, err := shouldUseVersionScript(stub)
+	useVersionScript, err := shouldUseVersionScript(ctx, stub)
 	if err != nil {
 		ctx.ModuleErrorf(err.Error())
 	}
