Help with Indy HTTP component/Demo and some mods to idHTTP.pas

I'm trying to use the demo to do a post to a URL that isn't working.
Here's the form data (minus some stuff that isn't relevant to the
question):

<form action="http://addurl.altavista.com/sites/admin/addurl"
method=POST>
URL: <input maxlength=520 name="url2add" size=60 value="http://">
E-Mail: <input maxlength=120 name="uemail" size=25 value="">
<input type=checkbox name="dc" value=1> deep crawl
<input type="Image" name="submit"
src="http://a12.g.akamai.net/7/12/282/03/av.com/static/i/submit.gif"
border="0">
<input type=hidden name=region value="">
<input type=hidden name=page value=submit>
</form>

So, on the demo I am setting:
  URL: http://addurl.altavista.com/sites/admin/addurl
  Method: Post
  Post Information:
url2add=http%3A%2F%2Fwww.houseofpain.tv%2F&uemail=br...@houseofpain.tv&dc=1&region=&page=submit

Then hitting "Go". The page that is returned is the same page that
would be returned if you had just done a "Get" on the same URL.

Also, I made a quick little addition to idHTTP.pas that just encodes
the characters that normally can't be passed as parameters to a get or
post. I'm sure it can be cleaned up and made more efficient but this
was just a quick fix:

function PostEncode(const src: String): String;
var
 i: integer;
 s: string;
 c: string;

begin
  s := '';
  c :=
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890&=+.@_-%';

  for i := 1 to length(src) do
    if src[i] = ' ' then s := s + '+'
    else
      if pos(src[i], c) = 0 then s := s + '%' + inttohex(ord(src[i]),
2)
      else s := s + src[i];

  result := s;
end;

Then in the two "Post" procedures, after the StringReplace, I call:

  S := StringReplace(ASource.Text, EOL, '&', [rfReplaceall]);
  s := PostEncode(s);