diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c
index c10369635bcc91e739496bbaee7afe13014822f1..92772e60b6ddd5dd1dea43a83f7f7718c2ef25e3 100644
--- a/channels/chan_pjsip.c
+++ b/channels/chan_pjsip.c
@@ -2173,9 +2173,10 @@ static void sip_build_replaces_param(const struct ast_channel *ast, const char *
 
 			// Create URI encoded Replaces parameter
 			// ?Replaces=<callid>;to-tag=<totag>;from-tag=<fromtag>
-			snprintf(replaces, len - 1, "%s;to-tag=%s;from-tag=%s", callid, totag, fromtag);
+			// snprintf(replaces, len - 1, "%s;to-tag=%s;from-tag=%s", callid, totag, fromtag);
+			snprintf(replaces, len - 1, "%s", callid);
 			ast_uri_encode(replaces, tmp, sizeof(tmp), ast_uri_http);
-			snprintf(replaces, len - 1, "?Replaces=%s", tmp);
+			snprintf(replaces, len - 1, "?Require=replaces&Replaces=%s", tmp);
 
         } else {
                 ast_log(LOG_NOTICE, "Asked to replace a call on channel type %s\n", type);
@@ -2247,7 +2248,8 @@ static void transfer_refer(struct ast_sip_session *session, const char *target)
 		goto failure;
 	}
 
-	snprintf(referto, sizeof(referto), "<%s:%s@%s%s>", method, target, session->endpoint->fromdomain, replaces);
+	//snprintf(referto, sizeof(referto), "<%s:%s@%s%s>", method, target, session->endpoint->fromdomain, replaces);
+	snprintf(referto, sizeof(referto), "<%s:%s@%s;user=phone%s>", method, target, session->endpoint->fromdomain, replaces);
 	ast_debug(1, "Refer-To: %s\n", referto);
 
 	if (pjsip_xfer_initiate(sub, pj_cstr(&tmp, referto), &packet) != PJ_SUCCESS) {