In this paper, we address the problem of dynamic protocol update (DPU) that requires global coordination of local code replacements. We propose a novel approach to DPU. The key idea is the use of synchronization facilities of the services that get updated. This solution makes global update simple and efficient. We describe an experimental implementation of adaptable group communication middleware. It can switch between different distributed agreement protocols on-the-fly. All middleware services, including those that depend on the updated protocols, provide service correctly and with negligible delay while the global update takes places. The switching algorithm introduces very low overhead, that we illustrate by showing example measurement results.