I just had an underwhelming response to my latest adventure into FFI, specifically wrapping the Acces IO USB API. Specifically, very few functions survived from description to actually being compiled. AFAICT, the compiler does not like underscores in method names for external functions. I'm not even sure how to describe it other than to give an example. This works: dIOWrite8:deviceIndex byteIndex:byteIndex data:data "unsigned long DIO_Write8(unsigned long DeviceIndex, unsigned long ByteIndex, unsigned char Data)" < cdecl: ulong 'DIO_Write8' ( ulong ulong byte ) > ^self invalidCall. This should compile, but it complains about a mismatch in the number of arguments: DIO_Write8:deviceIndex byteIndex:byteIndex data:data "unsigned long DIO_Write8(unsigned long DeviceIndex, unsigned long ByteIndex, unsigned char Data)" < cdecl: ulong 'DIO_Write8' ( ulong ulong byte ) > ^self invalidCall. The less Pharo forces us to change names as given from the outside, the better off we will be. I am using a 1.1 RC2 image, just in case this has been fixed since then?? I really need to build a new image soon. Bill