Hi there
I'm seriously confused, in UML you have two types of messages:
Synchroncious ( like you might call an operation, execution stops in the caller context and continues in the called context... If in the called context another call is made, execution similarly stops and continues in the called. As each inner operation completes it returns to the caller ). Uses a solid filled arrow head. The convention that of a return message, denoted with a dashed line, is so engrained that it can be assumed to flow from the end of called focus of control (ie you don't have draw them).
Asynchroncious ( like sending a signal or calling an operation that imeadiately returns... The message is sent, and execution in the caller continues. No assumption that the called operation executes, completes or returns can be made. This type of message is shown with an open arrow.
An asynchronous message does not have a reply / return flow.
If you send an asynchronous message from A to B, and then wait at A for a message from C.... surely you would show this 'wait' as stacked focus of control; the foc which sends msg to B, would create a sub foc ( much like a call to op on itself ( perhaps a call to wait ) and when C is complete you would send another asynchronous message to the sub foc. You could use the dashed line to make the return / reply clear I s'pose.
If your using the Synchroncious type then what your asking to do is just plain wrong.
And while you might wait for a return / reply message, handling that message is always separate from waiting for it.
Anyhows happy new year, I might have been tippling too much of the Christmas sherry

Regards
Kevin [smiley=2vrolijk_08.gif]