diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 28b0ad9affb388cd01ad291fb1c71af2ca9a4d7b..8311161ec0536fd12b42baef79cd7a6b55f4eb03 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -7168,7 +7168,9 @@ static int sipsock_read(int *id, int fd, short events, void *ignore)
 	memset(&req, 0, sizeof(req));
 	res = recvfrom(sipsock, req.data, sizeof(req.data) - 1, 0, (struct sockaddr *)&sin, &len);
 	if (res < 0) {
-		if (errno != ECONNREFUSED)
+		if (errno == EAGAIN)
+			ast_log(LOG_NOTICE, "SIP: Received packet with bad UDP checksum\n");
+		else if (errno != ECONNREFUSED)
 			ast_log(LOG_WARNING, "Recv error: %s\n", strerror(errno));
 		return 1;
 	}
diff --git a/rtp.c b/rtp.c
index 46b653fe28f83ac0f288e015589d601fba779579..631ea1e3340e6958015b86f8b9294b68a88cf37f 100755
--- a/rtp.c
+++ b/rtp.c
@@ -346,7 +346,10 @@ struct ast_frame *ast_rtcp_read(struct ast_rtp *rtp)
 					0, (struct sockaddr *)&sin, &len);
 	
 	if (res < 0) {
-		ast_log(LOG_WARNING, "RTP Read error: %s\n", strerror(errno));
+		if (errno == EAGAIN)
+			ast_log(LOG_NOTICE, "RTP: Received packet with bad UDP checksum\n");
+		else
+			ast_log(LOG_WARNING, "RTP Read error: %s\n", strerror(errno));
 		if (errno == EBADF)
 			CRASH;
 		return &null_frame;