The example code for AT91SAM7S64 contains #include <lib_AT91SAM7S64.h> and it works fine. When I include this in two or more .c files, I get lots of linker errors like *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS SYMBOL: AT91F_AIC_ConfigureIt?T Now if there was a non-extern variable declaration, or a normal routine in there I'd understand it, but in lib_AT91SAM7S64.h, AT91F_AIC_ConfigureIt is defined as __inline. ... and if it's inline, then why is the compiler generating any public definitions for it at all? Why does the linker even need to see an inline function? I've tried changing "__inline" to "inline", to agree more closely with the compiler docs, but that didn't help. Any ideas?