an alternative version of this is in cvs