             #
             if @cache[ locale ]?
 
-                @locale = @cache[ locale ]
-                @polyglot.locale(  @locale.name )
-                @polyglot.replace( @locale.phrases )
-
-                return Q( @locale )
+                return Q( @_polyglotReset( @locale = @cache[ locale ] ) )
+
 
             # Load the new locale phrases
             #


            return loaded.then( ( data ) =>

                # Set polyglot locale and phrases on success
                #
                @locale = data.response

                @polyglot.locale(  @locale.name )
                @polyglot.replace( @locale.phrases )

                # Add the default locale to the cache
                #
                @cache[ @locale.name ] = @locale

                return @locale
            )




            return accounting.formatNumber( number, precision, thousand, decimal )


        ###*
        #   Reset our `@polyglot` to a new locale definition.
        #
        #   @method     _polyglotReset
        #   @protected
        #
        #   @param      {Object}        locale                          A locale definition
        ###

        _polyglotReset: ( locale ) ->

            { polyglot }    = @

            polyglot.locale(  locale.name       )
            polyglot.replace( locale.phrases    )

            return locale



    # We only need one translator
    #
    localeManager = new LocaleManager()
