I doubt it. Try the following to see if making your code reflect these examples more closely helps.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adosql/adoprg02_525v.asp
I've never used output parameters like this, but it may be that cmd.Parameters("@RETURN_VALUE1") doesn't access the output parameter. It may be in a different collection (I have no idea). The MSDN examples keep using enumerated vs named access. So, try enumerated access as they do and if that works try looking for a different collection other than Parameters that may be holding the result values.
Actually, I think this last sentence from the second link is the answer:
After each parameter is added to the Parameters collection, executing the query string creates a recordset. After the recordset is closed, the values for the return code and output parameters are available.