There are two general approaches to providing computer support for synchronous collaboration. One is the sharing of legacy single-user applications. This is referred to as collaboration transparency, because the sharing is provided by a mechanism that is unknown, or transparent, to the application and its developers. The second approach, collaboration awareness, is to design an application specifically to support cooperative work. This work presents two distinct contributions: First, we present a critique of collaboration transparency as it is currently implemented in contrast to collaboration-aware implementations. We find conventional collaboration-transparency systems lacking in terms of efficient use of network resources and support for key groupware principles: concurrent work, relaxed WYSIWIS, and group awareness. Second, we examine the causes of these deficiencies, and then present an alternative implementation approach based on an object-oriented replicated architecture where selected single-user interface objects are dynamically replaced by multi-user extensions. The replacement is transparent to the single-user application and its developer. As an instance of this approach, we described its incorporation into a Java-based collaboration-transparency system, called JAMM.