This is a bug due to the abuse of default arguments in C++. I, ah, forgot to pass dest_uninitialized to the OOP arraycopy routines, so we always scan the destination array, even though it contains garbage. I also took the opportunity to do a little tidying-up. http://cr.openjdk.java.net/~aph/8150045/ Andrew.