I've been running into some problems with byte swapping in ole related code - it looks like the relevant stuff is in storage32.c - I've modified StorageUtl_{Read,Write}Word and DWord to byteswap on bigendian platforms, and that seems to help, but I'm also running into problems with the wchar property names in StorageImpl_{Read,Write}Property - the individual characters are showing up in the wrong order, so "Data" is showing up as 0x44006100 0x74006100 instead of 0x00440061 0x00740061 as I would expect... Is it safe to use the same approach here? should ReadProperty byteswap each wchar and then WriteProperty byteswap it again? There seem to be a lot of places things like this happen: StorageImpl_ReadProperty(This, propertyIndex, &chainProperty); chainProperty.startingBlock = bbHeadOfChain; StorageImpl_WriteProperty(This, propertyIndex, &chainProperty); and I'm not sure how else to handle these cases... Also - at the moment the only byteswapping macros actually appear in tools/wrc/wrctypes.h - would it make sense to move them to one of the top-level include directories, and use them in both storage32.c and in wrc? If so, which include file should I drop them in? Thanks! Warren