My 30D + 340EX has started acting up. About half the time the flash doesn't synch properly, leaving some portion of the frame incorrectly exposed (sometimes the top doesn't get flash, sometimes the bottom doesn't get flash, sometimes none of the frame gets flash).
This happens in both manual and ETTL mode, at different shutter speeds (even at 1/30th), with second-curtain enabled and disabled, and with high speed synch enabled and disabled.
The contacts look fine on both the flash and the camera.
The 30D's built-in flash appears to work without issue.
Edit: I've switched to my 20D, and the flash appears to be working fine there.
Any ideas what could be causing this?