Ghost Update Functions

Had to toss this in as a separate commit because GitHub wouldn't let me
merge and fix conflicts.