Sending faxes from Windows 8.1 Pro

One of the reasons I like my ancient laptop is the fact that it actually has a built-in modem. Now, it’s been many, many years since I had get an internet connection via dial-up, but having a modem has come in very handy. You know, when you just have to submit those sensitive documents by fax while you are on the road, you don’t really want to use a random fancy schmancy all-in-one with a built-in hard drive ;-)

Today was one of those days. Unfortunately, it was also a frustrating one.

See, I never actually had to think about print-to-fax when I was using Windows XP. But, this was the first time doing that after updgrading to Windows 8.1 Pro. I went through the clickety-clack process, and finally clicked “Send”. The progress monitor came up, told me it was dialing, I heard the dial tone, the digits, the handshake, and as expected, the line went quiet, so I just walked away, and started attending to other things.

When I came back, I realized my computer was repeatedly dialing, getting to the handshake stage, and then killing the sending process.


Some searching revealed the thread “8.1 broke my Windows Fax.”

I was skeptical at first. Especially since the accepted solution seemed to recommend replacing a system DLL with a file to be downloaded from some web site. I have no reason to doubt Hevanet’s integrity, but the thought just did not sit well with me.

Luckily, I also had access to a Netbook style computer on which I had installed Windows 7 64 bit. I made a backup copy of the FXST30.dll file on my Windows 8 computer, took ownership of the file, and then copied over the old version from the Windows 7 computer.

A simple test fax confirmed that everything was hunky dory.

So, at the very least, the diagnosis of the problem seems to be accurate. There is something wrong with the version of the FXST30.dll file that comes with Windows 8.1. For reference, here are the properties of each file:

And, here are the checksums of the files:

$ for %f in (fxst30*) do perl -MDigest::SHA1=sha1_hex -MPath::Class -wE "say join('= ', $ARGV[0], sha1_hex(scalar file($ARGV[0])->slurp(iomode => '<:raw')))" %f

FXST30.dll= 95231dea5c0e770883c7b06fb58fa681719afdd5

FXST30.dll.windows8= 2222761425d7e38ff1a558259f6535b94e12288e

The thread I mentioned above is from more than a year ago. I would have guess the problem would have been fixed by now. Disappointing.