I wonder what device the issue is on?  If you app crashes, I suspect the modem never knows it and keeps listening.  The app tries to reconnect to a "connected" port in use on the modem.  Loosing CD I would think reset the modem.  Maybe the manual on the modem would shed light on some CD timeout or some other timeouts.  On the windows side, you should be able to close the comm port in a Catch block on a crash and also possibly send a reset to the modem and restart the app in a top level catch.  If your app just unplugged or losses power, that should be clean on the windows side, because your starting from cold boot.  I suspect it is the modem not resetting and playing with some timeout AT commands may be needed when configuring the modem on start (or firmware settings).  I have similar issues debugging Net MF devices sometimes and VS depending on what state I left the device after detaching the last time. Most of the time resetting the device, allows VS to Deploy right after.  For a production situation, you may need to go as far as a Relay and controlling the modems power from your device.  Another thing you may need some kind of serial port breakout sniffer to shed light on what is going - if you can repro issue this should point to issue directly. I shiver remembering 1200-4800 modems, AT command, serial break outs, etc, in the early days.  Man. I actually did TCP over a 9600 modem on windows 3.x using some Trumpet WinSock IP stack. Ug.