Tobias, is there some reason why you aren't using the HARDWARE serial port? Using interrupts on the receive side solves 90% of all problems.