diff --git a/cmix/identity/tracker.go b/cmix/identity/tracker.go
index 0ce29846e61cf7ec124490023415d94321ff84da..8292706fbccc404ab64027c7273520d601f14926 100644
--- a/cmix/identity/tracker.go
+++ b/cmix/identity/tracker.go
@@ -405,14 +405,15 @@ func (t *manager) generateIdentitiesOverRange(inQuestion *TrackedID,
 
 	//link the chain
 	if len(identitiesToChain) > 0 {
-		firstLink := identitiesToChain[len(identitiesToChain)-1]
+		firstLink := &identitiesToChain[len(identitiesToChain)-1]
 		currentLink := firstLink
 		if len(identitiesToChain) > 1 {
 			for i := len(identitiesToChain) - 1; i >= 0; i-- {
 				currentLink.ProcessNext = &identitiesToChain[i]
+				currentLink = currentLink.ProcessNext
 			}
 		}
-		identitiesToAdd = append(identitiesToAdd, firstLink)
+		identitiesToAdd = append(identitiesToAdd, *firstLink)
 	}
 
 	//add the identities