Okay, I figured this out. mapM is not lazy, at least not for a monad that has state and under the circumstance you demand the state out the other side. I may rewrite the program. Or I may consider the ISS principle. ("Increase the stack, stupid.") -Mike