(I2C) Wire.endTransmission always returns non-zero.

Marty,

This has already been mentioned in:

I2C Repeated Start
http://arduino.cc/forum/index.php/topic,137607.0.html by cdan.

If you need to do anything but the most-basic I2C's, then you'll need to ignore Wire.cpp, and construct your own.

-Chris