I'm going to nominate my own answer here:
CultureInfo with fallback routing to another languageCultureInfo with fallback routing to another language
OP had built a FallbackCultureInfo which was designed to fall back to a different CultureInfo if the first one failed to localize the provided string. Simple, and this functionality is built into CultureInfo for a reason.
What OP failed to realize is that the FallbackCultureInfo would only work properly in a programme one time. I noticed this due to the static member in it.
What surprised me was the nature of the two bugs I discovered.
First: there was a bug if you provided a set of culture info's, then tried to construct a new fallback with another set, that included any culture info except the last of the first set. It basically skipped part of the process.
Second: this was more interesting. If you provided two CultureInfo items with the same parent (en-US and en-UK), then a third (or more) it would enter an infinite loop when traversing the parent. en-US -> en -> en-UK -> en -> en-UK -> ...
Both of these bugs were very curious, and created quite a havoc if the object was used incorrectly.