Here's what went on in my head when I thought about this issue: Performance =========== Throw +main execution path of algorithm is fast -have to leave exception handling turned on Return flag -insert if's throughout main execution path, causes slowdowns +can turn off exception handling I haven't done any experiments to compare the above, but since people shouldn't be turning off exception handling anyways, and some compilers do a decent job w.r.t. performance with exception handling, I think this is in favor of throwing. Code Clarity ============ Throw + algorithm code is uncluttered Return flag - if's in the algorithm code add clutter to sometimes already complicated algorithm. Here, the adv. is cleary for throw. So I went with throw. Cheers, Jeremy ---------------------------------------------------------------------- Jeremy Siek http://php.indiana.edu/~jsiek/ Ph.D. Student, Indiana Univ. B'ton email: jsiek@osl.iu.edu C++ Booster (http://www.boost.org) office phone: (812) 855-3608 ----------------------------------------------------------------------