Index: branches/1.4/channels/chan_sip.c
===================================================================
--- branches/1.4/channels/chan_sip.c	(revision 95945)
+++ branches/1.4/channels/chan_sip.c	(revision 95946)
@@ -9048,9 +9048,14 @@
 {
 	char tmp[256] = "", *c, *a;
 	struct sip_request *req = oreq ? oreq : &p->initreq;
-	struct sip_refer *referdata = p->refer;
+	struct sip_refer *referdata = NULL;
 	const char *transfer_context = NULL;
 	
+	if (!p->refer && !sip_refer_allocate(p))
+		return -1;
+
+	referdata = p->refer;
+
 	ast_copy_string(tmp, get_header(req, "Also"), sizeof(tmp));
 	c = get_in_brackets(tmp);
 
