Distributed computing is one of the major trends in the computer industry. As systems become more distributed, they also become more complex and have to deal with new kinds of problems, such as partial crashes and link failures. While many middleware architectures have emerged to answer the growing demand in distributed technologies, most of them do not provide any kind of fault tolerance mechanisms. In this paper, we discuss the addition of object group support to CORBA. We describe three approaches: integration, interception, and service, and we argue is favor of the latter. We present the architecture of an Object Group Service (OGS) that provides for fault tolerance and high availability through object replication. This service enables the application developer to deal with invocations to replicated objects in a completely transparent way. We describe the major components of OGS: messaging, monitoring, consensus, group membership, and group multicast. We finally discuss the implementation of the service and its performance.