Static initialisation isn't thread-safe in general (http://blogs.msdn.com/b/oldnewthing/archive/2004/03/08/85901.aspx - though it is in GCC), these are cheap to construct and it's an error path, so I propose to just take away the 'static'.