  Enterprise-scale systems such as those used for cloud computing require a
scalable and highly available infrastructure. One crucial ingredient of such an
infrastructure is the ability to replicate data coherently among a group of
cooperating processes in the presence of process failures and group membership
changes. The last few decades have seen prolific research into efficient
protocols for such data replication. One family of such protocols are the
virtually synchronous protocols. Virtually synchronous protocols achieve their
efficiency by limiting their synchronicity guarantee to messages that bear a
causal relationship to each other. Such protocols have found wide-ranging
commercial uses over the years. One protocol in particular, the CBCAST protocol
developed by Birman, Schiper and Stephenson in 1991 and used in their ISIS
platform was particularly promising due to its unique no-wait properties, but
has suffered from seemingly intractable race conditions. In this paper we
describe a corrected version of this protocol and prove its formal properties.
