diff --git a/luni/src/main/java/java/lang/System.java b/luni/src/main/java/java/lang/System.java
index 471b35f..8e531c3 100644
--- a/luni/src/main/java/java/lang/System.java
+++ b/luni/src/main/java/java/lang/System.java
@@ -117,9 +117,9 @@
         final String locale = getProperty("user.locale", "");
         if (!locale.isEmpty()) {
             Locale l = Locale.forLanguageTag(locale);
-            initUnchangeableSystemProperty("user.language", l.getLanguage());
-            initUnchangeableSystemProperty("user.region", l.getCountry());
-            initUnchangeableSystemProperty("user.variant", l.getVariant());
+            setUnchangeableSystemProperty("user.language", l.getLanguage());
+            setUnchangeableSystemProperty("user.region", l.getCountry());
+            setUnchangeableSystemProperty("user.variant", l.getVariant());
         } else {
             // If "user.locale" isn't set we fall back to our old defaults of
             // language="en" and region="US" (if unset) and don't attempt to set it.
@@ -129,11 +129,11 @@
             final String region = getProperty("user.region", "");
 
             if (language.isEmpty()) {
-                initUnchangeableSystemProperty("user.language", "en");
+                setUnchangeableSystemProperty("user.language", "en");
             }
 
             if (region.isEmpty()) {
-                initUnchangeableSystemProperty("user.region", "US");
+                setUnchangeableSystemProperty("user.region", "US");
             }
         }
     }
@@ -809,8 +809,10 @@
      *
      * This is called from native code when the environment needs to change under native
      * bridge emulation.
+     *
+     * @hide also visible for tests.
      */
-    private static void initUnchangeableSystemProperty(String name, String value) {
+    public static void setUnchangeableSystemProperty(String name, String value) {
         checkPropertyName(name);
         unchangeableSystemProperties.put(name, value);
     }
diff --git a/luni/src/test/java/libcore/java/util/LocaleTest.java b/luni/src/test/java/libcore/java/util/LocaleTest.java
index c6dd730..e1e84ab 100644
--- a/luni/src/test/java/libcore/java/util/LocaleTest.java
+++ b/luni/src/test/java/libcore/java/util/LocaleTest.java
@@ -1172,18 +1172,18 @@
         final String userLocale = System.getProperty("user.locale", "");
         try {
             // Assert that user.locale gets priority.
-            System.setProperty("user.locale", "de-DE");
-            System.setProperty("user.language", "en");
-            System.setProperty("user.region", "US");
+            System.setUnchangeableSystemProperty("user.locale", "de-DE");
+            System.setUnchangeableSystemProperty("user.language", "en");
+            System.setUnchangeableSystemProperty("user.region", "US");
 
             Locale l = Locale.getDefaultLocaleFromSystemProperties();
             assertEquals("de", l.getLanguage());
             assertEquals("DE", l.getCountry());
 
             // Assert that it's parsed as a full language tag.
-            System.setProperty("user.locale", "de-Latn-DE");
-            System.setProperty("user.language", "en");
-            System.setProperty("user.region", "US");
+            System.setUnchangeableSystemProperty("user.locale", "de-Latn-DE");
+            System.setUnchangeableSystemProperty("user.language", "en");
+            System.setUnchangeableSystemProperty("user.region", "US");
 
             l = Locale.getDefaultLocaleFromSystemProperties();
             assertEquals("de", l.getLanguage());
@@ -1192,15 +1192,15 @@
 
             // Assert that we use "und" if we're faced with a bad language tag, and
             // that we don't end up with a null default locale or an exception.
-            System.setProperty("user.locale", "dexx-Latn-DE");
+            System.setUnchangeableSystemProperty("user.locale", "dexx-Latn-DE");
 
             l = Locale.getDefaultLocaleFromSystemProperties();
             assertEquals("und", l.getLanguage());
             assertEquals("DE", l.getCountry());
         } finally {
-            System.setProperty("user.language", userLanguage);
-            System.setProperty("user.region", userRegion);
-            System.setProperty("user.locale", userLocale);
+            System.setUnchangeableSystemProperty("user.language", userLanguage);
+            System.setUnchangeableSystemProperty("user.region", userRegion);
+            System.setUnchangeableSystemProperty("user.locale", userLocale);
         }
     }
 }
