Ah ok, I misremembered my own code. For some reason, I thought I was receiving the handshake with active_once which may have been tampered if the init_ack was called too early. Since I am processing the handshake using Transport:recv, this isn't a problem.

I'm away from my normal computer which could run some crappy test code so I won't merge this today (at the Erlang conference) but I should be able to get to this late tomorrow.

Thanks again