MacBook wifi gets unreliable/slow when NOT charging
Solution 1:
second edit: Apple released a patch for the slow wireless issue here. I will leave the original answer in place in case the patch doesn't fix people's problems.
10.5.8 introduced some serious wifi problems for me as well. The only solution I've found is on Apple's discussion site where someone realised that replacing some system files from 10.5.8 with their counterparts from 10.5.7 fixes the problems. The steps necessary depend on if you have a Time Machine backup from the machine when 10.5.7 was installed.
Firstly, if you have no Time Machine backup from 10.5.7:
edit: I should note that replacing system kexts like this, while unlikely to cause any problems, is highly unsupported. The safest way is to do an Archive & Install from your install discs and update only to 10.5.7 until Apple release an official fix for the bug. blah blah disclaimer etc.
- Download 10.5.7 Combo Update
- Download Pacifist (the demo will do). This allows you to extract and install files from the 10.5.7 .pkg
- Delete /System/Library/Extensions/AppleAirport.kext
- Delete /System/Library/Extensions/IO80211Family.kext
- Install /System/Library/Extensions/AppleAirport.kext using Pacifist, from the 10.5.7 package.
- Install /System/Library/Extensions/IO80211Family.kext using Pacifist, from the 10.5.7 package.
- Delete /System/Library/Caches/com.apple.kernelcaches/ folder
- Delete /System/Library/Extensions.mkext
- Reboot.
Make sure you understand the steps. A mistake here might break your wireless completely.
If you have a Time Machine backup from 10.5.7 you can simply restore the two kexts mentioned above (AppleAirport.kext and IO80211Family.kext) and reboot. That cleared up my wireless issues.
Further discussion on apple.com: 1, 2, 3. These should give more instructions and information.
If you are familiar and comfortable with the Terminal, another method if you have no Time Machine backup: link which has detailed instructions you can copy into the Terminal.