diff --git a/src/core/thread/mle_router.cpp b/src/core/thread/mle_router.cpp index 42affd985..ccd5c7aec 100644 --- a/src/core/thread/mle_router.cpp +++ b/src/core/thread/mle_router.cpp @@ -1793,8 +1793,13 @@ void MleRouter::HandleStateUpdateTimer(void) break; case OT_DEVICE_ROLE_DETACHED: - BecomeDetached(); - ExitNow(); + if (mChallengeTimeout == 0) + { + BecomeDetached(); + ExitNow(); + } + + break; case OT_DEVICE_ROLE_CHILD: if (routerStateUpdate)