diff --git a/src/sip/auth.c b/src/sip/auth.c
index 70681e4..f341312 100644
--- a/src/sip/auth.c
+++ b/src/sip/auth.c
@@ -166,7 +166,9 @@ static bool auth_handler(const struct sip_hdr *hdr, const struct sip_msg *msg,
 			goto out;
 	}
 	else {
-		if (!pl_isset(&ch.stale) || pl_strcasecmp(&ch.stale, "true")) {
+		/* error if first auth attempt fails */
+		if ((!pl_isset(&ch.stale) ||
+		     pl_strcasecmp(&ch.stale, "true")) && (realm->nc == 2)) {
 			err = EAUTH;
 			goto out;
 		}
