Passing messages through shared memory plays an important role on symmetric multiprocessors and on Clumps. The management of concurrent access to message queues is an important aspect of design for shared memory message-passing systems. Using both microbenchmarks and applications, this paper compares the performance of concurrent access algorithms for passing active messages on a Sun Enterprise 5000 server. The paper presents a new lock-free algorithm that provides many of the advantages of non-blocking algorithms while avoiding the overhead of true non-blocking behavior. The lock-free algorithm couples synchronization tightly to the data structure and demonstrates application performance superior to all others studied. The success of this algorithm implies that other practical problems might also benefit from a reexamination of the non-blocking literature.