Hello there, I've found a really minor bug. The source code is SIZ(prod) = ((sign_product < 0) ^ (small_mult < 0)) ? -size : size; but MULTIPLICAND_UNSIGNED long int small_mult Suggest simplify the code. Regards David Binderman