private boolean one_byte_size_ready () {
        
        int size = tmpbuf [0];
        if (size < 0)
            size = (0xff) & size;

        //  Message size must not exceed the maximum allowed size.
        if (maxmsgsize >= 0)
            if (size > maxmsgsize) {
                decoding_error ();
                return false;
            }

        //  in_progress is initialised at this point so in theory we should
        //  close it before calling zmq_msg_init_size, however, it's a 0-byte
        //  message and thus we can treat it as uninitialised...
        in_progress = new Msg (size);

        in_progress.set_flags (msg_flags);
        next_step (in_progress.data (), in_progress.size (),
            message_ready);

        return true;
    }