that was a helpful post. though it didn't exactly hit the spot it suggested setting debug99 for IO::Socket::SSL. once i did this, all errors went away! my next step was to remove the debug flag and magically everything was fine. so, my top level .pl script, even though it doesn't use IO::Socket::SSL directly, benefits from calling it at the top level. i've simplified my pp line quite a bit and everything seems much better. thanks.