diff --git a/network/message/critical.go b/network/message/critical.go
index 99c83d9842b48f200d6e3c2d2e930b8441ae362e..0ba2fa1e2360a8e904c23b27a1605cc0b0224a27 100644
--- a/network/message/critical.go
+++ b/network/message/critical.go
@@ -15,6 +15,7 @@ import (
 	ds "gitlab.com/elixxir/comms/network/dataStructures"
 	"gitlab.com/elixxir/primitives/format"
 	"gitlab.com/elixxir/primitives/states"
+	"gitlab.com/xx_network/primitives/id"
 	"time"
 )
 
@@ -83,7 +84,8 @@ func (m *Manager) criticalMessages() {
 	param := params.GetDefaultCMIX()
 	//raw critical messages
 	for msg, rid, has := critRawMsgs.Next(); has; msg, rid, has = critRawMsgs.Next() {
-		go func(msg format.Message) {
+		localRid := rid.DeepCopy()
+		go func(msg format.Message, rid *id.ID) {
 			//send the message
 			round, _, err := m.SendCMIX(msg, rid, param)
 			//if the message fail to send, notify the buffer so it can be handled
@@ -112,7 +114,7 @@ func (m *Manager) criticalMessages() {
 				return
 			}
 			critRawMsgs.Succeeded(msg, rid)
-		}(msg)
+		}(msg, localRid)
 	}
 
-}
+}
\ No newline at end of file