We present a protocol for controlling a shared ATM multicast tree supporting many-to-many communication. The protocol supports one or several ATM VCCs of the many-to-many type. The number of VCCs is independent of the number of endpoints. The protocol guarantees that there is no interleaving on any VCC of the tree. The protocol also guarantees that the traffic contract associated with the VCCs is respected, thus making it possible to use ordinary VCCs of the CBR, VBR or UBR class. No re-sequencing server or cell buffering inside the network is required, and all cell forwarding is performed at the ATM layer. We describe the protocol both informally and formally.