Hi Dan, Only getting around to looking at this now ... This all looks perfectly reasonable to me. I don't see a good reason why you shouldn't just go ahead with this next time we feel like de-stabilising the tree for a while. The only downside is things might break a little for people during upgrades. One comment ... On Thu, 2007-03-22 at 20:46 +0000, Daniel P. Berrange wrote: > 1. Add an extra initial message type to do a major/minor version number > exchange. Based on the negotiated versions, the server can activate > or deactivate particular requests it allows from the client. I think the approach I'd take would be: - Never remove a request from the server - Allow the server to tell the client the latest version of the protocol it supports - The client, where it can, falls back to an older request if the client doesn't support the appropriate newer request. Otherwise, it returns an error to the caller. The way a newer client has a chance of dealing with an older server and an older client client works with a newer server. Cheers, Mark.