Index: branches/1.2/channels/chan_sip.c
===================================================================
--- branches/1.2/channels/chan_sip.c	(revision 120108)
+++ branches/1.2/channels/chan_sip.c	(revision 120109)
@@ -6831,12 +6831,14 @@
 			return -1;
 		}
 		from += 4;
+		if (pedanticsipchecking) {
+			ast_uri_decode(from);
+		}
 	} else
 		from = NULL;
 
 	if (pedanticsipchecking) {
 		ast_uri_decode(uri);
-		ast_uri_decode(from);
 	}
 
 	/* Get the target domain first and user */
@@ -7261,11 +7263,10 @@
 	while(*t && (*t > 32) && (*t != ';'))
 		t++;
 	*t = '\0';
-	of = get_header(req, "From");
+
+	ast_copy_string(from, get_header(req, "From"), sizeof(from));
 	if (pedanticsipchecking)
-		ast_uri_decode(of);
-
-	ast_copy_string(from, of, sizeof(from));
+		ast_uri_decode(from);
 	
 	memset(calleridname,0,sizeof(calleridname));
 	get_calleridname(from, calleridname, sizeof(calleridname));
