On Mon, 27 Jan 2014 18:36:44 +0000 Rupert Swarbrick wrote: > Is this a wrinkle about anonymous unions? I vaguely remember they're not > allowed in C99, but they are allowed with gnu99 or C11. Maybe the > compiler is getting confused by them? I don't think so. Anyway, quite by chance, I detected that, not by the projects' doing, a (Microchip) file gets included called 'GenericTypedefs.h'. This file redefines WORD and POINTER, and, for some deep reason, supersedes the typedefs.h file in the project which defines WORD as a union, as was expected. GenericTypedefs.h redefines WORD as a short, non-union, struct. This caused the problem. Now I have another - unrelated - problem: usbmmap.h: 167: (1250) could not find space (8 bytes) for variable _SetupPk= t I've no idea how to solve this, and little incentive. I found an assembly bootloader, usbolo.asm, which assembled in a fraction of a second, without errors, and I can easily change the bootloader pin to RA4. Cheers, John --=20 http://www.piclist.com/techref/piclist PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .