As I mentioned above, having a Write(ByteBuffer.empty, someAck) might break this (it depends on what should be the semantics of null writes).