Assertion in InterprocessConnection::deliverDataInt

Hi all,
I’m using InterPluginCommunication as a member of a SharedResourcePointer. It works fine except I’m getting an assertion at seemingly random times upon startup. It appears with about a 7 or 8% chance when loading the plugin.

void InterprocessConnection::deliverDataInt (const MemoryBlock& data)
{
jassert (callbackConnectionState); // JUCE IPC (16): EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)

if (useMessageThread)
    (new DataDeliveryMessage (this, data))->post();
else
    messageReceived (data);
}

Debugging it is quite hard because the assertion is rarely thrown.
I logged the functions calls. I also have 2 IPC Threads… is that normal?
WORKING:
connectionLostInt
connectionLostInt
connectionMadeInt
callbackConnectionState = true
connectionMadeInt
callbackConnectionState = true
deliverDataInt
deliverDataInt
deliverDataInt
connectionLostInt
connectionLostInt
callbackConnectionState = false
connectionLostInt
connectionLostInt
connectionLostInt
connectionLostInt
connectionMadeInt
callbackConnectionState = true
connectionMadeInt
callbackConnectionState = true
deliverDataInt
deliverDataInt
deliverDataInt
deliverDataInt

NOT WORKING:
connectionLostInt
connectionLostInt
connectionMadeInt
callbackConnectionState = true
connectionMadeInt
callbackConnectionState = true
deliverDataInt
deliverDataInt
deliverDataInt // Assertion here
connectionLostInt
callbackConnectionState = false

If I ignore the assertion and let it run everything is working fine as far as i can tell.

Any ideas?
Thanks
R