Sync with upstream

This updates our fork to the upstream version.

Tested to work correctly with interface-user. Most important change is that this includes my patch for `-callback` generation.