Finish 3744

This finishes the great pull request started by @mickaelandrieu in #3744.
I haven't. @mickaelandrieu did you test it?