Problem with base64 encoding/decoding (using INDY 8.1 beta)

I was trying to encode/decode a JPEG image and it is not working.  When I
try to decode the text to a jpeg file, I receive "Uneven size in
DecodeToStream" exception. (It seems to encode correctly)

I used Mabry's ActiveX encoder/decoder to test also, and its encoded text
has carridge returns/line feeds every 77 characters, is that necessary?  I
tried to use Indy's decoder to decode their encoded file, and it does not
decode it properly.  It seems to be missing some data because the new jpeg
is smaller than the original.

 I would like to use Indy's, if it works.  Please let me know if I screwed
up in my code, or if it is a bug.

Thanks.

here's my code:
procedure TForm1.btnEncodeClick(Sender: TObject);
var
  strm: TFileStream;
  sl: TStringList;
  s: string;
begin
  strm := TFileStream.Create( 'C:\image.jpg', fmOpenRead );
  sl := TStringList.Create;
  try
    strm.Position := 0;
    s := IdEncoderMIME1.Encode( strm );
    sl.Text := s;
    sl.SaveToFile( 'C:\DelphiEncode.txt' );
  finally
    sl.Free;
    strm.Free;
  end;
end;

procedure TForm1.btnDecodeClick(Sender: TObject);
var
  strm: TFileStream;

  sl: TStringList;
  s: string;
begin
  strm := TFileStream.Create( 'C:\delphi-Decode.jpg', fmCreate );
  sl := TStringList.Create;
  try
    strm.Position := 0;

    sl.LoadFromFile( 'C:\DelphiEncode.txt' );
    s := sl.Text;

    IdDecoderMIME1.DecodeToStream( s, strm );
  finally
    sl.Free;
    strm.Free;
  end;
end;