I just realized that, in my previous message, I should have distinguished between return 1/0; the results of which are return Infinity with zerodivide; and double huge = 1e300; ... return huge*huge; the results of which are return Infinity with overflow; --Guy