f1b6bbc921 erroneously replaced
callback = newCallback;
previousCallback = callback;
with
previousCallback = std::exchange (callback, newCallback);
It looks like previousCallback is intended to hold the last active
callback, so the previous version was correct after all.
v6.1.6