Update and port latest changes from Valve