It turns out that our existing (trivial) python test is enough to catch this bug, but the corpus needs to be augmented. This augmentation is a bit intrusive so I'm thinking of cherry-picking only the actual fix to the release branch. Unfortunately the test message is 8 bit, so it may be encoded in some inconvenient way for patch application. The message is attached to an earlier message in the thread if you want to double check. I also wondered about putting g_type_init inside the (!initialized) test, but decided against it on the grounds of minimality. I think we want to in the medium term factor out all of the initialization code into one (probably private) function; we can clean things up a bit more then.