This in Java: static volatile SecurityManager current; generates this in CNI: static volatile ::java::lang::SecurityManager * current; but of course the object isn't volatile, the field is. It should be static ::java::lang::SecurityManager * volatile current; shouldn't it? Andrew.