I have finally got to grips with l3fp's exception handling. (The main difficulty was realising that an exception like division_by_zero is a different creature from the flag fp_division_by_zero.) However, I was surprised to find that \fp_eval:n { ln(1) } raises the underflow flag: \flag_height:n { fp_underflow } displays 1. Andrew --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus