Despite the inherent suitability of object-oriented languages for use in distributed systems, projects which have addressed this topic have encountered considerable difficulties. As a result, proposed solutions are generally limited to environments which are homogeneous in terms of system software, hardware and the object models they support. The paper studies current approaches to distributing object-oriented languages and argues that mechanisms for supporting distribution should be provided, not at the language level, but by the underlying system. Implementation of the Aide system is then detailed; this system provides such support separately from the operating system kernel, on an intelligent coprocessor. It is argued that this approach is necessary for efficient implementation in heterogeneous distributed systems.