diff -ruN arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.cpp arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.cpp --- arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.cpp 2012-11-04 16:29:10.000000000 -0500 +++ arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.cpp 2012-12-03 15:35:06.000000000 -0500 @@ -89,9 +89,7 @@ #if !defined(USART0_RX_vect) && defined(USART1_RX_vect) // do nothing - on the 32u4 the first USART is USART1 #else -#if !defined(USART_RX_vect) && !defined(SIG_USART0_RECV) && \ - !defined(SIG_UART0_RECV) && !defined(USART0_RX_vect) && \ - !defined(SIG_UART_RECV) +#if !defined(USART_RX_vect) && !defined(USART0_RX_vect) #error "Don't know what the Data Received vector is called for the first UART" #else void serialEvent() __attribute__((weak)); @@ -99,14 +97,8 @@ #define serialEvent_implemented #if defined(USART_RX_vect) SIGNAL(USART_RX_vect) -#elif defined(SIG_USART0_RECV) - SIGNAL(SIG_USART0_RECV) -#elif defined(SIG_UART0_RECV) - SIGNAL(SIG_UART0_RECV) #elif defined(USART0_RX_vect) SIGNAL(USART0_RX_vect) -#elif defined(SIG_UART_RECV) - SIGNAL(SIG_UART_RECV) #endif { #if defined(UDR0) @@ -143,8 +135,6 @@ unsigned char c = UDR1; }; } -#elif defined(SIG_USART1_RECV) - #error SIG_USART1_RECV #endif #if defined(USART2_RX_vect) && defined(UDR2) @@ -160,8 +150,6 @@ unsigned char c = UDR2; }; } -#elif defined(SIG_USART2_RECV) - #error SIG_USART2_RECV #endif #if defined(USART3_RX_vect) && defined(UDR3) @@ -177,8 +165,6 @@ unsigned char c = UDR3; }; } -#elif defined(SIG_USART3_RECV) - #error SIG_USART3_RECV #endif void serialEventRun(void) diff -ruN arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.h arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.h --- arduino-1.0.2.orig/hardware/arduino/cores/arduino/HardwareSerial.h 2012-11-04 16:29:10.000000000 -0500 +++ arduino-1.0.2/hardware/arduino/cores/arduino/HardwareSerial.h 2012-12-03 15:35:06.000000000 -0500 @@ -126,6 +126,15 @@ #endif #endif +/* + * on ATmega8, the uart and its bits are not numbered, so there is no "TXC0" + * definition. It is slightly cleaner to define this here instead of having + * conditional code in the cpp module. + */ +#if !defined(TXC0) +#define TXC0 TXC +#endif + extern void serialEventRun(void) __attribute__((weak)); #endif diff -ruN arduino-1.0.2.orig/hardware/arduino/cores/arduino/WInterrupts.c arduino-1.0.2/hardware/arduino/cores/arduino/WInterrupts.c --- arduino-1.0.2.orig/hardware/arduino/cores/arduino/WInterrupts.c 2012-11-04 16:29:11.000000000 -0500 +++ arduino-1.0.2/hardware/arduino/cores/arduino/WInterrupts.c 2012-12-03 15:37:08.000000000 -0500 @@ -314,7 +314,7 @@ #endif /* -SIGNAL(SIG_2WIRE_SERIAL) { +ISR(TWI_vect) { if(twiIntFunc) twiIntFunc(); }