Distributed systems are often modeled by objects that run concurrently, each with its own processor , and communicate by synchronous remote method calls. This may be satisfactory for tightly coupled systems, but in the distributed setting synchronous external calls seem less satisfactory; at best resulting in inefficient use of processor capacity , at wor st resulting in deadlock. Furthermore, it is difficult to combine active and passive behavior in concurrent objects. This paper proposes a solution to these problems by means of asynchronous method calls and conditional processor release points. Although at the cost of additional internal non- determinism in the objects, this approach seems attractive in asynchronous or unreliable environments. The concepts are inte grated in a small object-oriented language with an oper ational semantics defined in rewriting logic, and illustrated by an example of a peer-to-peer network.