Ioerror when running local but not when live - during php call from flash

example:
http://www.davidcaneso.com/dev/phpreturn/

in the example each button attempts to contact a php script and the result is displayed in flash.
if the php file is not available on the server (ie: server could be down or the file doesn’t exist) shouldnt an ioerror be thrown.

The frustrating thing is the ioerror gets thrown if you are using DATAFORMAT.TEXT but not when you are using DATAFORMAT.VARIABLES (i didnt try BINARY)
Shouldn’t an ioerror be thrown regardless of which DATAFORMAT type you are using?
That’s what happens when you run the file locally. Why doesn’t this happen when it’s deployed on a server?

The error that gets thrown on the server (and you will see if you are running the debugger version of flash player) is the 2101 error:
Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.
This makes (some) sense cause is seems the loader in flash is getting a response (from a file that is not on the server) but the response is not in a valid format.

Checking the httpStatus is of no help either as it is 0 in all cases whether the file exists or not.

Does this sound like a bug or is there something I am missing? Perhaps some way to catch the 2101 error i have tried but without success.

the source (cs3 just to be safe) is available at the link below if you want to see/test for yourself.
DOWNLOAD SOURCE

thanks in advance for any help that comes my way.