Abstract. The majority of object migration systems do not support heterogeneous environments. Few systems solve this challenge by specifying a platform and language independent state transfer format, requiring a compatible implementation for every target language. However, fields of research like Ubiquitous and Pervasive Computing with mobile users and applications demand an even more platform-independent, flexible and adaptive approach. This paper presents a novel approach for adaptive object and agent migration in heterogeneous environments based on our former work enabling language-and platform-independent object mobility in CORBA. By providing flexible mechanisms to reduce, expand and transform an object's state and functionality during migration, we support adaptation to the context and application-specific demands at the target system. This is achieved by introducing a separation of state, functionality and implementation code instead of mapping particular state on particular code. Our prototype system supports object migration from Java to C++ and vice versa. In principle, our concept can be transferred to any CORBA-supported programming language.