Hi Don,
Doesn't your ad_return_url already handle this? Something like:
on .tcl
set current_url [ad_return_url -urlencode]
on .adp
<a href="next_page?return_url=@current_url@">
Although ad_return_url does make use of ns_conn rather than ad_conn which may differ in result in host node map on [ns_conn url] and possibly some other situations too.