the problem is in these two lines
if (UltraSerial.available()) {
for(;;) {
suppose you have one byte available in UltraSerial, it enters an endless loop that (tries to) read a char per iteration (assuming neu and new are the same;)
add a few lines to check it.
if (UltraSerial.available()) {
for(;;) {
neu = UltraSerial.read();
Serial.print("<");
Serial.print(neu, DEC);
Serial.println(">");