We present JavaGo 4.0, a library for thread migration and checkpointing in Java. In version 4.0, we have re-designed the JavaGo Language Specification using standard Java 5 annotations such that no additional keywords are used, which eases the developers' work as they can keep using their favorite IDE and can produce both a migratable and a non-migratable version of their program out of the same source code. Java source code with JavaGo specific annotations is transformed into migratable Java code by the JavaGo source-to-source compiler jgoc. In version 4.0, it has been re-developed from scratch, now supporting the Java 6 standard, producing user- friendly, meaningful error / warning messages on compilation problems, and running much faster than its previous version. In this paper we present the JavaGo 4.0 Language Specification, compiler internals, especially the implementation of the unfolding technique, and some evaluations concerning code growth etc.