Multilingual frontpage with translation and URL alias
For this to work, you need to have pathauto, i18n module and translations activated. Also content type Page needs to have multilingual content activated.
Here is what I did:
1. In Pathauto, I gave Page a pattern with [lang] token, for example [lang]/[title-raw]
2. I created a Page called Frontpage and chose English as language
3. Translated it using the tab Translate to my own language (Finnish)
4. My Finnish frontpage is called Etusivu so it will have URL fi/etusivu created by pathauto. English page should have URL en/frontpage
5. Under Site information I put etusivu as default home page (i18n will strip the fi/ away from the path, so don't put it here)
6. I created a new URL alias en/etusivu pointing to the real path of the Frontpage (which was node/14) in my case.
Now Frontpage has two aliases pointing to it, en/frontpage and en/etusivu. If I don't add URL alias in part 6, I will get a "Page not found" error, because i18n will look for en/etusivu, which doesn't exist unless I create the alias.
You may wonder why I didn't use fi/etusivu. It works like I mentioned in my instructions. I had to create illogical alias en/etusivu pointing to the English frontpage, because I use etusivu as the homepage in site information of Drupal configuration. So if the user has English as chosen language, the user will be redirected to frontpage instead of etusivu. If I understood the i18n module right.

Using pathauto for language prefix?
It this realy right way? What do you have setup in "admin/settings/language/configure"?
When I use Path prefix only. or Path prefix with language fallback. it generates me language prefix automatically. So if I'll setup pathauto, it will duplicates that prefix, IMHO..
Just now I find this duplicate, diff solution:
http://drupal.org/node/357248
I don't have such setting in
I don't have such setting in Drupal5. In i18n module setting I have selected "Only current language and no language". It is working fine for me, maybe i18n only adds the prefix when it doesn't exist already.
Solution you mentioned should work fine, but I'm not sure if it works in Drupal5.