diff --git a/rtp.c b/rtp.c
index 9e6395bb6cfc680df3cfb35dff0e14daa0c6244a..a6c63005451d0c9d90c584ef9c0550d0c0b09790 100755
--- a/rtp.c
+++ b/rtp.c
@@ -413,6 +413,12 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
 		ast_log(LOG_WARNING, "RTP Read too short\n");
 		return &null_frame;
 	}
+
+	/* Ignore if the other side hasn't been given an address
+	   yet.  */
+	if (!rtp->them.sin_addr.s_addr || !rtp->them.sin_port)
+		return &null_frame;
+
 	if (rtp->nat) {
 		/* Send to whoever sent to us */
 		if ((rtp->them.sin_addr.s_addr != sin.sin_addr.s_addr) ||
@@ -421,10 +427,6 @@ struct ast_frame *ast_rtp_read(struct ast_rtp *rtp)
 			ast_log(LOG_DEBUG, "RTP NAT: Using address %s:%d\n", inet_ntoa(rtp->them.sin_addr), ntohs(rtp->them.sin_port));
 		}
 	}
-	/* Ignore if the other side hasn't been given an address
-	   yet.  */
-	if (!rtp->them.sin_addr.s_addr || !rtp->them.sin_port)
-		return &null_frame;
 
 	/* Get fields */
 	seqno = ntohl(rtpheader[0]);