diff --git a/java/src/com/android/inputmethod/latin/LocaleUtils.java b/java/src/com/android/inputmethod/latin/LocaleUtils.java
index fcf727041240e03499e52bcc17c7e6e07c94d8d6..5fde8158a30f25ce43ea0b517927aa9cfccade2e 100644
--- a/java/src/com/android/inputmethod/latin/LocaleUtils.java
+++ b/java/src/com/android/inputmethod/latin/LocaleUtils.java
@@ -180,14 +180,15 @@ public final class LocaleUtils {
             synchronized (sLockForRunInLocale) {
                 final Configuration conf = res.getConfiguration();
                 final Locale oldLocale = conf.locale;
+                final boolean needsChange = (newLocale != null && !newLocale.equals(oldLocale));
                 try {
-                    if (newLocale != null && !newLocale.equals(oldLocale)) {
+                    if (needsChange) {
                         conf.locale = newLocale;
                         res.updateConfiguration(conf, null);
                     }
                     return job(res);
                 } finally {
-                    if (newLocale != null && !newLocale.equals(oldLocale)) {
+                    if (needsChange) {
                         conf.locale = oldLocale;
                         res.updateConfiguration(conf, null);
                     }