diff -crB mod_sofia.orig/mod_sofia.c mod_sofia/mod_sofia.c
*** mod_sofia.orig/mod_sofia.c	2011-06-03 11:09:01.000000000 +0200
--- mod_sofia/mod_sofia.c	2011-06-03 11:30:52.000000000 +0200
***************
*** 1984,1989 ****
--- 1984,1990 ----
  		if (!zstr(msg->string_arg)) {
  			if (!switch_channel_test_flag(channel, CF_ANSWERED) && !sofia_test_flag(tech_pvt, TFLAG_BYE)) {
  				char *extra_headers = sofia_glue_get_extra_headers(channel, SOFIA_SIP_RESPONSE_HEADER_PREFIX);
+ 				char *added_headers = sofia_glue_get_extra_headers(channel, SOFIA_SIP_HEADER_PREFIX);
  				char *dest = (char *) msg->string_arg;
  				char *argv[128] = { 0 };
  				char *mydata = NULL, *newdest = NULL;
***************
*** 2025,2034 ****
  
  				if (argc > 1) {
  					nua_respond(tech_pvt->nh, SIP_300_MULTIPLE_CHOICES, SIPTAG_CONTACT_STR(dest),
! 								TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END());
  				} else {
  					nua_respond(tech_pvt->nh, SIP_302_MOVED_TEMPORARILY, SIPTAG_CONTACT_STR(dest),
! 								TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), TAG_END());
  				}
  
  
--- 2026,2037 ----
  
  				if (argc > 1) {
  					nua_respond(tech_pvt->nh, SIP_300_MULTIPLE_CHOICES, SIPTAG_CONTACT_STR(dest),
! 								TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), 
! 								TAG_IF(!zstr(added_headers), SIPTAG_HEADER_STR(added_headers)), TAG_END());
  				} else {
  					nua_respond(tech_pvt->nh, SIP_302_MOVED_TEMPORARILY, SIPTAG_CONTACT_STR(dest),
! 								TAG_IF(!zstr(extra_headers), SIPTAG_HEADER_STR(extra_headers)), 
! 								TAG_IF(!zstr(added_headers), SIPTAG_HEADER_STR(added_headers)), TAG_END());
  				}
  
  
