diff --git a/network/node/register.go b/network/node/register.go
index a4424eb18b16b98f2b1766f68101fcf7c8fe11b4..153786606578fc3eaf72fbcfaf04d00297fb3735 100644
--- a/network/node/register.go
+++ b/network/node/register.go
@@ -31,6 +31,7 @@ import (
 	"gitlab.com/xx_network/crypto/signature/rsa"
 	"gitlab.com/xx_network/crypto/tls"
 	"gitlab.com/xx_network/primitives/id"
+	"gitlab.com/xx_network/primitives/ndf"
 	"gitlab.com/xx_network/primitives/netTime"
 	"strconv"
 	"sync"
@@ -83,6 +84,10 @@ func registerNodes(sender *gateway.Sender, session *storage.Session,
 			if _, operating := inProgress.LoadOrStore(nidStr, struct{}{}); operating {
 				continue
 			}
+			// No need to register with stale nodes
+			if isStale := gw.Node.Status == ndf.Stale; isStale {
+				continue
+			}
 			err := registerWithNode(sender, comms, gw, regSignature,
 				regTimestamp, uci, cmix, rng, stop)
 			inProgress.Delete(nidStr)