diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 542a762ab6386b2d75350c798a4ee70aee323d2f..e19145cdd391a9124e59b98c37cee02faafd6357 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6221,12 +6221,13 @@ static int check_user_full(struct sip_pvt *p, struct sip_request *req, int sipme
 	} else
 		of += 4;
 	/* Get just the username part */
-	if ((c = strchr(of, '@')))
+	if ((c = strchr(of, '@'))) {
 		*c = '\0';
-	if ((c = strchr(of, ':')))
-		*c = '\0';
-	ast_copy_string(p->cid_num, of, sizeof(p->cid_num));
-	ast_shrink_phone_number(p->cid_num);
+		if ((c = strchr(of, ':')))
+			*c = '\0';
+		ast_copy_string(p->cid_num, of, sizeof(p->cid_num));
+		ast_shrink_phone_number(p->cid_num);
+	}
 	if (*calleridname)
 		ast_copy_string(p->cid_name, calleridname, sizeof(p->cid_name));
 	if (ast_strlen_zero(of))