the set_unless state is bleeding from call to call...

not sure how to fix this correctly so that a set_unless cleans itself up instead of relying on the next call to fix it...