It looks like you found a good solution to your problem.
We've had success with a similar approach. We also look to handle any case where communication with the camera fails in addition to never happening in the first place.
http://www.chiefdelphi.com/forums/sh...88&postcount=9
I agree it looks like the specific problem you're seeing is probably because the PIC sends out commands before the camera has time to complete it's power-up sequence.
We also use a generic startup delay in our main loop of a few milliseconds, so the code doesn't attempt to do any sensor I/O or even pay attention to the regular OI communication packet until everything's had a chance to settle.