Thanks florianvanthuyn but I get the same results.

to confirm, I put in:

Code:
switch(loader.dataFormat) {
	case URLLoaderDataFormat.TEXT :
		trace("completeHandler (text): " + loader.data);
		break;
	case URLLoaderDataFormat.BINARY :
		trace("completeHandler (binary): " + loader.data);
		break;
	case URLLoaderDataFormat.VARIABLES :
		trace("completeHandler (variables): " + loader.data);
		break;
}
and get the result:

completeHandler (variables): returnedfirstname=bob

So it's definitely getting, as variables, the right data back into Flash but:

returnedfirstname = event.target.data. returnedfirstname

return null

as does

returnedfirstname = variables. returnedfirstname