diff --git a/src/core/thread/mle.cpp b/src/core/thread/mle.cpp index 3e663865d..b4cac2f1e 100644 --- a/src/core/thread/mle.cpp +++ b/src/core/thread/mle.cpp @@ -224,7 +224,10 @@ ThreadError Mle::Start(bool aEnableReattach) } else if (IsActiveRouter(GetRloc16())) { - mMleRouter.BecomeRouter(ThreadStatusTlv::kTooFewRouters); + if (mMleRouter.BecomeRouter(ThreadStatusTlv::kTooFewRouters) != kThreadError_None) + { + BecomeChild(kMleAttachAnyPartition); + } } else {