diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 233c53c09ed25c206ee91057383b18a89162bda3..ac109beab5aa28d487a177e9dc47a75163f1d226 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -13333,12 +13333,13 @@ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int
 		return -1;
 	}
 
-	if (current.chan2 && sipdebug && option_debug > 3)
-		ast_log(LOG_DEBUG, "Got SIP transfer, applying to bridged peer '%s'\n", current.chan2->name);
+	if (current.chan2) {
+		if (sipdebug && option_debug > 3)
+			ast_log(LOG_DEBUG, "Got SIP transfer, applying to bridged peer '%s'\n", current.chan2->name);
 
-	/* Stop music on hold on this channel */
-	if (current.chan2)
+		/* Stop music on hold on this channel */
 		ast_moh_stop(current.chan2);
+	}
 
 	ast_set_flag(&p->flags[0], SIP_GOTREFER);	
 
@@ -13370,15 +13371,13 @@ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int
 
 	/* Blind transfers and remote attended xfers */
 	transmit_response(p, "202 Accepted", req);
-	if (current.chan2->name) {
-		ast_log(LOG_NOTICE, "chan2->name: %s\n", current.chan2->name);
-		pbx_builtin_setvar_helper(current.chan2, "BLINDTRANSFER", current.chan1->name);
-	}
-	if (current.chan1) {
+
+	if (current.chan1 && current.chan2) {
 		ast_log(LOG_NOTICE, "chan1->name: %s\n", current.chan1->name);
 		pbx_builtin_setvar_helper(current.chan1, "BLINDTRANSFER", current.chan2->name);
 	}
 	if (current.chan2) {
+		pbx_builtin_setvar_helper(current.chan2, "BLINDTRANSFER", current.chan1->name);
 		pbx_builtin_setvar_helper(current.chan2, "SIPDOMAIN", p->refer->refer_to_domain);
 		pbx_builtin_setvar_helper(current.chan2, "SIPTRANSFER", "yes");
 		/* One for the new channel */
@@ -13412,6 +13411,7 @@ static int handle_request_refer(struct sip_pvt *p, struct sip_request *req, int
 	ast_channel_unlock(current.chan2);
 
 	/* Connect the call */
+
 	/* FAKE ringing if not attended transfer */
 	if (!p->refer->attendedtransfer)
 		transmit_notify_with_sipfrag(p, seqno, "183 Ringing", FALSE);