diff --git a/msb-430-common/board_init.c b/msb-430-common/board_init.c
index de2e5c01dc1f4eb6fde17be0a08681f1c0360dd0..4f0fec335d516f4a1d02940efa93501d20acdd66 100644
--- a/msb-430-common/board_init.c
+++ b/msb-430-common/board_init.c
@@ -55,8 +55,8 @@ static void msb_ports_init(void)
     //   0 - P2.7 [IN ] - SD-KARTE Detect
 
     P3SEL = 0xC0;	// Port3 Zweitfunktion
-    P3OUT = 0x09;	// Port3 Ausgangsregister: 00001001 = 0x09
-    P3DIR = 0x2B;	// Port3 Direction
+    P3OUT = 0x49;	// Port3 Ausgangsregister: 00001001 = 0x09
+    P3DIR = 0xAB;	// Port3 Direction
     //   1 - P3.0
     //   1 - P3.1
     //   0 - P3.2
@@ -119,7 +119,10 @@ void msp430_set_cpu_speed(uint32_t speed)
     UBR11  = br >> 8;
     UMCTL1 = calc_umctl(br);	// set modulation
 
+    ME2 |= (UTXE1 | URXE1);
     UCTL1 &= ~SWRST;
+
+    IE2 |= URXIE1;
     //clock_init();
     eint();
 }
diff --git a/msb-430-common/uart1.c b/msb-430-common/uart1.c
index 2b22b3171b2ca7f7efd5afbff0d1af316c9dab3d..025d09dc6e7ab61521adfe8b3d9bdb27967d992a 100644
--- a/msb-430-common/uart1.c
+++ b/msb-430-common/uart1.c
@@ -1,9 +1,12 @@
 #include "board.h"
 
-#define   UART1_TX                        TXBUF1
+#define UART1_TX                        TXBUF1
 #define UART1_WAIT_TXDONE()       while( (UTCTL1 & TXEPT) == 0 ) { _NOP(); }
 
 #include <stdio.h>
+#include <kernel.h>
+
+#include <board_uart0.h>
 
 int putchar(int c)
 {
@@ -11,11 +14,44 @@ int putchar(int c)
     UART1_WAIT_TXDONE();
 
     if (c == 10) {
-        UART1_TX = 13;
         UART1_WAIT_TXDONE();
     }
 
     return c;
 }
 
+void usart0irq(void);
+/**
+ * \brief the interrupt function
+ */
+interrupt(USART1RX_VECTOR) usart0irq(void) 
+{
+    U1TCTL &= ~URXSE; /* Clear the URXS signal */
+    U1TCTL |= URXSE;  /* Re-enable URXS - needed here?*/
+    int c = 0;
+    /* Check status register for receive errors. */
+    if(U1RCTL & RXERR) {
+        if (U1RCTL & FE) {
+           puts("rx framing error");
+        }
+        if (U1RCTL & OE) {
+            puts("rx overrun error");
+        }
+        if (U1RCTL & PE) {
+            puts("rx parity error");
+        }
+        if (U1RCTL & BRK) {
+            puts("rx break error");
+        }
+        /* Clear error flags by forcing a dummy read. */
+        c = U1RXBUF;
+    }
+#ifdef MODULE_UART0
+    else if (uart0_handler_pid) {
+        c = U1RXBUF;
+        uart0_handle_incoming(c);
+        uart0_notify_thread();
+    }
+#endif
+}
 
diff --git a/msb-430h/Makefile.include b/msb-430h/Makefile.include
index c5716486ebb6b4f4e954ea3dc38c1c8f12b37026..166060e36fee949587776c7c0889157ca12dc68c 100644
--- a/msb-430h/Makefile.include
+++ b/msb-430h/Makefile.include
@@ -1,3 +1,4 @@
+export INCLUDES += -I$(RIOTBOARD)/msb-430h/include -I$(RIOTBOARD)/msb-430-common/include
 include $(RIOTBOARD)/$(BOARD)/Makefile.dep
 
 include $(RIOTBOARD)/msb-430-common/Makefile.include
diff --git a/msb-430h/driver_cc110x.c b/msb-430h/driver_cc110x.c
index deb6835fd29c96a37ea49e20af1e7c3fac959c46..857bfcf1d424acb211ef63268c98723fd7488bc6 100644
--- a/msb-430h/driver_cc110x.c
+++ b/msb-430h/driver_cc110x.c
@@ -337,8 +337,6 @@ void cc110x_spi_init(uint8_t clockrate)
 interrupt(PORT2_VECTOR) __attribute__((naked)) cc110x_isr(void)
 {
     __enter_isr();
-    puts("cc110x_isr()");
-
     //	if (system_state.POWERDOWN) SPI_INIT; /* Initialize SPI after wakeup */
     /* Check IFG */
     if ((P2IFG & 0x01) != 0) {