Kati include mal die io.h auch noch. Besonders seit dem neuen WinAVR hat ich ohne die einige Probleme. Vielleicht ists ja beim CodeVision auch deswegen. Ist mir nur aufgefallen weil bei beiden Codes von euch die io.h nich included war.
Gruß Muraad

EDIT:
Mir ist es grad aufgefallen du hast nach der while() anweisung die {} Klammern vergessen also:
Code:
void USART_transmit (unsigned char c) {
	while (!(UCSRA & (1<<UCSRA.5))) {} <--- Die Klammern da
	UDR = c;
}
Deswegen bleibt er auch da auch hängen denk ich.