diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index ac323bf7982c13b63c911a19e448ae279ffde913..379dc1fcf377aefee67cef4827e37c268482695f 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -3646,7 +3646,7 @@ static void receive_info(struct sip_pvt *p, struct sip_request *req)
 	struct ast_frame f;
 	char *c;
 	/* Try getting the "signal=" part */
-	if ((c = get_sdp(req, "Signal"))) {
+	if (strlen(c = get_sdp(req, "Signal")) || strlen(c = get_sdp(req, "d"))) {
 		strncpy(buf, c, sizeof(buf) - 1);
 	} else if (get_msg_text(buf, sizeof(buf), req)) {
 		/* Normal INFO method */