Yes, this looks like a major change to the protocol, but it's not. We were sending unnecessary newlines and Redis was simply ignoring them in most cases, except when configured to use VM. In that case, under some scenarios, an 'unknown command' exception would be thrown. Anyway, this is the correct implementation of the protocol. Upgrading is safe and recommended. Thanks to Sam Stokes for reporting the issue and to Pieter Noordhuis for spotting the bug both in the client and the server.
This is an issue with Redis honoring the global timeout even for blocking commands set to an infinite timeout. There is a fix for this issue at http://github.com/pietern/redis/commit/47cb1a However, it still makes sense to have blocking commands try to reconnect if the connection is lost for other reasons.