Port changed() function to master

Port the `changed()` forward from #530 to `master`.