Yep I know that, just need to know what it did so that when I was rewriting this program to use CGI that I didn't leave something out. I've gotten past that now and am having trouble implementing CGI.pm to send back the post request to the server. When I post the query object back PayPal doesn't like the way it's formatted. I am trying to resist using the read() function to get the post string but the CGI module isn't making this too easy. Does anyone know how I can get at the post data and add a var (I've done this using param() ) and then send it back using LWP without screwing up the format?