diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 276d3ba602987074125e8338af0068315b64370a..ef2c9d94491ac776ce8f4cd3ce1bd73d42681659 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2517,33 +2517,32 @@ static int lws2sws(char *msgbuf, int len)
 		} 
 		/* Check for end-of-line */ 
 		if (msgbuf[h] == '\n') { 
-		/* Check for end-of-message */ 
+			/* Check for end-of-message */ 
 			if (h + 1 == len) 
-			break; 
-		/* Check for a continuation line */ 
-		if (msgbuf[h + 1] == ' ') { 
-		/* Merge continuation line */ 
-			h++; 
+				break; 
+			/* Check for a continuation line */ 
+			if (msgbuf[h + 1] == ' ' || msgbuf[h + 1] == '\t') { 
+				/* Merge continuation line */ 
+				h++; 
+				continue; 
+			} 
+			/* Propagate LF and start new line */ 
+			msgbuf[t++] = msgbuf[h++]; 
+			lws = 0;
 			continue; 
 		} 
-		/* Propagate LF and start new line */ 
-		msgbuf[t++] = msgbuf[h++]; 
-		lws = 0;
-		continue; 
-	} 
-
-	if (msgbuf[h] == ' ' || msgbuf[h] == '\t') { 
-		if (lws) { 
-			h++; 
+		if (msgbuf[h] == ' ' || msgbuf[h] == '\t') { 
+			if (lws) { 
+				h++; 
+				continue; 
+			} 
+			msgbuf[t++] = msgbuf[h++]; 
+			lws = 1; 
 			continue; 
 		} 
 		msgbuf[t++] = msgbuf[h++]; 
-		lws = 1; 
-		continue; 
-	} 
-	msgbuf[t++] = msgbuf[h++]; 
-	if (lws) 
-		lws = 0; 
+		if (lws) 
+			lws = 0; 
 	} 
 	msgbuf[t] = '\0'; 
 	return t;