**[Diogo Quintela](https://jira.spring.io/secure/ViewProfile.jspa?name=dquintela)** opened **[SPR-9607](https://jira.spring.io/browse/SPR-9607?redirect=false)** and commented Hello, org.springframework.context.support.MessageSourceSupport and org.springframework.context.support.StaticMessageSource maintains a map to cache MessageFormat instances: Map<String, MessageFormat> cachedMessageFormats = new HashMap<String, MessageFormat>(); The problem is that MessageFormat are created with locale information and the caches don't honor that. I propose that it should be used instead. Map<String, Map<Locale,MessageFormat>> cachedMessageFormats = new HashMap<String, Map<Locale,MessageFormat>>(); btw, since spring is now only Java5 why not replace all maps and synchronized blocks with ConcurrentMap and Lock's ? Best regards Diogo Quintela --- **Affects:** 3.1.2