For e = (sqrt(3) - 2)/2 * x, we have (mminusp* e) ==> true AND (mminusp* (neg e)) ==> true. The simp-%cos hack (and ($trigsign (mminusp* y) (not (mminusp* (neg y))) .. stops the infinite loop. But mminusp* needs to be more conservative about returning true. Barton