Thanks for your suggestion of IO::Termios. Unfortunately it seems that the OS in question (ubuntu) lacks packages for IO::Termios.
I may be that crtscts never worked, can't really check right now. But it definitely didn't die while setting 19200, which it now does.
Your comment on open is duly noted, but as stated, the code is _OLD_ (written in 2000) and I didn't really plan to rewrite it :-)
Lastly, I looked at your link about system -- maybe I'm missing something, but system(LIST) seems to be just fine?