Thx Danny for pointing out the rate limiting step in the code I presented earlier. I am heading toward the world of genome/evolution analysis in which the data size could be abnormally huge. This sort of practice -- using profile to detect the rate limiting step -- could be very helpful. pan