The only thing I can think of that might be causing this behaviour is that upon ".Open()" being called, the DCB block is being set once per setting in the DCB block. If that is the case, then setting ".DtrEnabled" to true before calling ".Open()" *might* help. In any case the SerialPort class is just doing P/Invoke calls to the Win32 functions. I wrote my own serial port class in a way that demonstrates asynchronous behaviour. If you would like, you could take a copy of that to test with to see if you can cure this issue. Phil