Today, distributed object-based computing is closely linked with Java. The Java virtual machine is ported to most current operating systems and provides many services which help developing distributed object-based applications (e.g. RMI). In Java, code and data mobility is a very important aspect. Java provides a serialisation mechanism which allows the capture and restoration of objects’ states and therefore the migration of objects between machines. It also allows classes to be dynamically loaded and therefore to be moved between nodes. However, Java does not provide a mechanism for capturing and restoring a thread state. The stack of a Java thread is not accessible. Such a mechanism would allow a thread to be checkpointed or migrated between different nodes. In this paper, we report on our experience which consisted in extending the Java virtual machine in order to allow the capture and restoration of a thread state. We describe the principles of the implementation of this extens...