Finish 3744

This finishes the great pull request started by @mickaelandrieu in #3744.