diff --git a/cmix/identity/tracker.go b/cmix/identity/tracker.go
index e62b4067c8f54920aaae938721a59704ae8a2e43..394e9ac31f253328f1bd257275fcb5a5f78ee77d 100644
--- a/cmix/identity/tracker.go
+++ b/cmix/identity/tracker.go
@@ -240,7 +240,9 @@ func (t *manager) track(stop *stoppable.Single) {
 func (t *manager) processIdentities(addressSize uint8) time.Time {
 	edits := false
 	toRemove := make(map[int]struct{})
-	nextEvent := t.tracked[0].ValidUntil
+	// Identities are rotated on a 24-hour time period. Set the event
+	// to the latest possible time so that any sooner times will overwrite this
+	nextEvent := netTime.Now().Add(time.Duration(ephemeral.Period))
 
 	// Loop through every tracked ID and see if any operations are needed
 	for i, inQuestion := range t.tracked {
@@ -263,13 +265,15 @@ func (t *manager) processIdentities(addressSize uint8) time.Time {
 			if inQuestion.NextGeneration.Before(nextEvent) {
 				nextEvent = inQuestion.NextGeneration
 			}
-			if inQuestion.ValidUntil != Forever && inQuestion.ValidUntil.Before(nextEvent) {
+			if !inQuestion.ValidUntil.IsZero() && inQuestion.ValidUntil.Before(nextEvent) {
 				nextEvent = inQuestion.ValidUntil
 			}
 		}
 
 	}
 
+	jww.INFO.Printf("[TrackedIDS] NextEvent: %s", nextEvent)
+
 	// Process any deletions
 	if len(toRemove) > 0 {
 		newTracked := make([]TrackedID, 0, len(t.tracked))