In regards to error references within a system header file, that's usually caused by a macro expansion gone bad or malformed code block in the users code. The cleaning referred to above will cleanup all the intermediate compiled objects and what not required to create your final binary. Very much like a "make clean". An object won't re-compile unless it needs to (source changed or compiled object removed), so if you see a warning the first time around in say "mystuff.c", make a change in "main.c", and recompile, you won't see the warning from mystuff.c again until you do a "make clean", or in Atmel Studio's case, "Build->Clean Solution". Have a link for the thread you have going on avrfreaks?