I think that it is a bad idea that (rat)coeff returns zero, if it can't make the coefficient explicit, it should rather return 'ratcoeff...: (C1) ratcoeff((1+x)^k,x,2); (D1) 0 (C2) ratcoeff(x^k,x,2); (D2) 0 because this way, it is impossible to determine from the output whether the coefficient is zero or it could not be determined... Martin