I'll do whatever you guys tell me. The create time is in the MessageData. I have already struggled to find some understandable words and obviously I have failed. OTOH, much of this goes away if we change TimeToLive to an Interval? Your other concern. . . isn't the time to the first Retry still RetryInterval? I assume that the Sending MSH doesn't really care when the last Retry was sent. What it really cares about is a multiple of RetryInterval since the message was originally sent/created. The system would keep a RetryCount parameter and then send the next Retry when RetryCount * RetryInterval (SINCE create time) had passed. OTOH, if a Retry were late due to some problem (system crash. . .) then this could mean multiple Retries at the same time. . .hmmm. I think this is an implementation detail and we don't have to solve it. Your point about comparing TimeToLive to Receive time is correct. The Receiving MSH would have to add TimeToLive to the MessageData+Timestamp if we change TimeToLive to an interval. We have to keep in mind that TimeToLive is since message creation, not since the last send. Regards, David Fischer Drummond Group.