I have a Perl/Tk application which uses Win32::SerialPort. It was compiled using perl2exe and distributed to my client's customers as an exe file. A few of these customers have noted that when the program is terminated and restarted, it bombs due to the serial port already being open. Apparently when they exit the program the first time, the port isn't getting closed. According to the Win32::SerialPort docs, one way to close the serial port is to undef the port object, which I would expect to happen automatically when the program terminates. Nonetheless, I have tried to do this explicitly by including the undef in an exit routine bound to the main window's Destroy event. But this routine isn't getting called when the program is terminated. I'm not sure what to try next and, unfortunately, can't duplicate the problem on my own machine. Perhaps someone has had a similar encounter and can offer some advice. Thanks.