There are many details at the following URL, including a sample program and source to illustrate the problem.
Just to summarize:
1. create a page containing an asynchronous DirectLink, and direct it to update some div (testdiv)
2. the listener for that DirectLink changes some data around
3. testdiv references another component which uses that data to create some more DirectLinks, but these ones are synchronous and use org.apache.tapestry.contrib.link.PopupLinkRenderer for rendering