diff --git a/demos/bsp/boards/board.c b/demos/bsp/boards/board.c
index 28e387488..78f794c0c 100644
--- a/demos/bsp/boards/board.c
+++ b/demos/bsp/boards/board.c
@@ -44,32 +44,6 @@ void SysTick_Handler (void)
   system_ticks++;
 }
 
-//-------------------------------------------------------------------- +
-//                    LPCXpresso printf redirection                    +
-//-------------------------------------------------------------------- +
-#if (defined BSP_UART_ENABLE) && (__REDLIB_INTERFACE_VERSION__ >= __REDLIB_INTERFACE_VERSION__)
-// Called by bottom level of printf routine within RedLib C library to write
-// a character. With the default semihosting stub, this would write the character
-// to the debugger console window . But this version writes
-// the character to the LPC1768/RDB1768 UART.
-int __sys_write (int iFileHandle, char *pcBuffer, int iLength)
-{
-	return board_uart_send(pcBuffer, iLength);
-}
-
-// Called by bottom level of scanf routine within RedLib C library to read
-// a character. With the default semihosting stub, this would read the character
-// from the debugger console window (which acts as stdin). But this version reads
-// the character from the LPC1768/RDB1768 UART.
-int __sys_readc (void)
-{
-	uint8_t c;
-	board_uart_recv(&c, 1);
-	return (int)c;
-}
-
-#endif
-
 void check_failed(uint8_t *file, uint32_t line)
 {
 
diff --git a/demos/bsp/boards/board.h b/demos/bsp/boards/board.h
index 3e39312c8..a7f207e47 100644
--- a/demos/bsp/boards/board.h
+++ b/demos/bsp/boards/board.h
@@ -59,8 +59,8 @@
 
 #define BSP_TICKS_PER_SECOND 1000
 
-//#define BSP_UART_ENABLE
-#define BSP_UART_BAUDRATE     115200
+#define BSP_UART_ENABLE 1
+#define BSP_UART_BAUDRATE 115200
 
 
 /// n-th Bit
diff --git a/demos/bsp/boards/printf_retarget.c b/demos/bsp/boards/printf_retarget.c
new file mode 100644
index 000000000..948521b40
--- /dev/null
+++ b/demos/bsp/boards/printf_retarget.c
@@ -0,0 +1,65 @@
+/*
+ * printf_retarget.c
+ *
+ *  Created on: Jan 11, 2013
+ *      Author: hathach
+ */
+
+/*
+ * Software License Agreement (BSD License)
+ * Copyright (c) 2012, hathach (tinyusb.net)
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+ * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ * This file is part of the tiny usb stack.
+ */
+
+#include "board.h"
+
+//-------------------------------------------------------------------- +
+//                    LPCXpresso printf redirection                    +
+//-------------------------------------------------------------------- +
+#if BSP_UART_ENABLE
+// Called by bottom level of printf routine within RedLib C library to write
+// a character. With the default semihosting stub, this would write the character
+// to the debugger console window . But this version writes
+// the character to the UART.
+int __sys_write (int iFileHandle, char *pcBuffer, int iLength)
+{
+  (void) iFileHandle;
+	return board_uart_send(pcBuffer, iLength);
+}
+
+// Called by bottom level of scanf routine within RedLib C library to read
+// a character. With the default semihosting stub, this would read the character
+// from the debugger console window (which acts as stdin). But this version reads
+// the character from the UART.
+int __sys_readc (void)
+{
+	uint8_t c;
+	board_uart_recv(&c, 1);
+	return (int)c;
+}
+
+#endif