My serial port investigation continues. Here's the premise again... I've got an embedded system that dumps chars and strings to a serial port. I've attached a Slackware 7.1 Toshiba 430 CDT laptop to the other end of the serial cable. When the system streams a string of chars the linux box doesn't get anything but if I send individual chars they are received by the linux box. When I send 'setserial -ga /dev/ttyS0' it tells me my UART is a 16550A. If I change this to a 16550 everything works fine. I looked at /etc/serial.conf and it is defining the port as a 16450. Who's really controlling this and how do I get it set properly? As a side problem: This code doesn't print anything until a \n is received from the sending unit: ... char buf[255]; ... while (STOP==FALSE) { /* loop for input */ res = read(fd,buf,1); /* returns after 1 chars have been input */ printf("%c", buf); if (buf[0]=='z') STOP=TRUE; } But this code does: ... char buf[255]; ... while (STOP==FALSE) { /* loop for input */ res = read(fd,buf,1); /* returns after 1 chars have been input */ printf("%c\n", buf); if (buf[0]=='z') STOP=TRUE; } Why would the addition of a \n fix the code. It appears to flush the print buffer. Thanks, -John