diff --git a/network/node/register.go b/network/node/register.go
index c89d2dd55371bef074a3d417f5ca05ae66d4e550..aa80a5c5da6255c18a5f96e2171912cef3f7f32c 100644
--- a/network/node/register.go
+++ b/network/node/register.go
@@ -59,6 +59,8 @@ func registerNodes(sender *gateway.Sender, session *storage.Session, rngGen *fas
 	stop *stoppable.Single, c chan network.NodeGateway) {
 	u := session.User()
 	regSignature := u.GetTransmissionRegistrationValidationSignature()
+	// Timestamp in which user has registered with permissioning
+	regTimestamp := u.GetRegistrationTimestampNano()
 	uci := u.GetCryptographicIdentity()
 	cmix := session.Cmix()
 
@@ -71,7 +73,7 @@ func registerNodes(sender *gateway.Sender, session *storage.Session, rngGen *fas
 			t.Stop()
 			return
 		case gw := <-c:
-			err := registerWithNode(sender, comms, gw, regSignature, uci, cmix, rng)
+			err := registerWithNode(sender, comms, gw, regSignature, regTimestamp, uci, cmix, rng)
 			if err != nil {
 				jww.ERROR.Printf("Failed to register node: %+v", err)
 			}
@@ -82,8 +84,10 @@ func registerNodes(sender *gateway.Sender, session *storage.Session, rngGen *fas
 
 //registerWithNode serves as a helper for RegisterWithNodes
 // It registers a user with a specific in the client's ndf.
-func registerWithNode(sender *gateway.Sender, comms RegisterNodeCommsInterface, ngw network.NodeGateway, regSig []byte,
-	uci *user.CryptographicIdentity, store *cmix.Store, rng csprng.Source) error {
+func registerWithNode(sender *gateway.Sender, comms RegisterNodeCommsInterface, ngw network.NodeGateway,
+	regSig []byte, registrationTimestampNano int64, uci *user.CryptographicIdentity,
+	store *cmix.Store, rng csprng.Source) error {
+
 	nodeID, err := ngw.Node.GetNodeId()
 	if err != nil {
 		jww.ERROR.Println("registerWithNode() failed to decode nodeId")
@@ -118,7 +122,7 @@ func registerWithNode(sender *gateway.Sender, comms RegisterNodeCommsInterface,
 		// keys
 		transmissionHash, _ := hash.NewCMixHash()
 
-		nonce, dhPub, err := requestNonce(sender, comms, gatewayID, regSig, uci, store, rng)
+		nonce, dhPub, err := requestNonce(sender, comms, gatewayID, regSig, registrationTimestampNano, uci, store, rng)
 		if err != nil {
 			return errors.Errorf("Failed to request nonce: %+v", err)
 		}
@@ -145,8 +149,10 @@ func registerWithNode(sender *gateway.Sender, comms RegisterNodeCommsInterface,
 	return nil
 }
 
-func requestNonce(sender *gateway.Sender, comms RegisterNodeCommsInterface, gwId *id.ID, regHash []byte,
-	uci *user.CryptographicIdentity, store *cmix.Store, rng csprng.Source) ([]byte, []byte, error) {
+func requestNonce(sender *gateway.Sender, comms RegisterNodeCommsInterface, gwId *id.ID,
+	regSig []byte, registrationTimestampNano int64, uci *user.CryptographicIdentity,
+	store *cmix.Store, rng csprng.Source) ([]byte, []byte, error) {
+
 	dhPub := store.GetDHPublicKey().Bytes()
 	opts := rsa.NewDefaultOptions()
 	opts.Hash = hash.CMixHash
@@ -170,13 +176,15 @@ func requestNonce(sender *gateway.Sender, comms RegisterNodeCommsInterface, gwId
 				Salt:            uci.GetTransmissionSalt(),
 				ClientRSAPubKey: string(rsa.CreatePublicKeyPem(uci.GetTransmissionRSA().GetPublic())),
 				ClientSignedByServer: &messages.RSASignature{
-					Signature: regHash,
+					Signature: regSig,
 				},
 				ClientDHPubKey: dhPub,
 				RequestSignature: &messages.RSASignature{
 					Signature: clientSig,
 				},
 				Target: gwId.Marshal(),
+				// Timestamp in which user has registered with permissioning
+				TimeStamp: registrationTimestampNano,
 			})
 		if err != nil {
 			errMsg := fmt.Sprintf("Register: Failed requesting nonce from gateway: %+v", err)