Is this multi-thread-safe?  There seems to be quite a lot of code to cope with it not being but I wanted to check explicitly that it's not and suggest that we document this here if so.