Any recent changes to the Wire library?l

Well it looks like I'm not the only person with problems.

What I don't understand is why the following hangs -

while ( !Wire.available() ) ;
ret = Wire.read();

This does not hang, however does not always return the correct data

//while( !Wire.available() ) ;
ret = Wire.read();

I'm not good enough with GitHub to compare the spark_wiring_i2c.cpp today vs a month ago.