diff --git a/locale.c b/locale.c index 23d2943332f0..b17a34bd9ec4 100644 --- a/locale.c +++ b/locale.c @@ -1605,7 +1605,6 @@ S_new_numeric(pTHX_ const char *newnum) * such platforms. */ - PL_numeric_underlying = TRUE; /* Save the new name if it isn't the same as the previous one, if any */ if (PL_numeric_name && strEQ(PL_numeric_name, newnum)) { @@ -1616,6 +1615,10 @@ S_new_numeric(pTHX_ const char *newnum) PL_numeric_name = savepv(newnum); } + /* We are in the underlying locale until changed at the end of this + * function */ + PL_numeric_underlying = TRUE; + # ifdef USE_POSIX_2008_LOCALE /* We keep a special object for easy switching to */