diff --git a/metropolis/node/core/curator/curator.go b/metropolis/node/core/curator/curator.go
index bfaa90d..e88493a 100644
--- a/metropolis/node/core/curator/curator.go
+++ b/metropolis/node/core/curator/curator.go
@@ -91,10 +91,30 @@
 	lockRev int64
 }
 
+func (e *electionStatusLeader) equal(o *electionStatusLeader) bool {
+	if e.lockKey != o.lockKey {
+		return false
+	}
+	if e.lockRev != o.lockRev {
+		return false
+	}
+	return true
+}
+
 type electionStatusFollower struct {
 	lock *ppb.LeaderElectionValue
 }
 
+func (e *electionStatusFollower) equal(o *electionStatusFollower) bool {
+	if e.lock.NodeId != o.lock.NodeId {
+		return false
+	}
+	if e.lock.Ttl != o.lock.Ttl {
+		return false
+	}
+	return true
+}
+
 // buildLockValue returns a serialized etcd value that will be set by the
 // instance when it becomes a leader. This value is a serialized
 // LeaderElectionValue from private/storage.proto.
diff --git a/metropolis/node/core/curator/listener.go b/metropolis/node/core/curator/listener.go
index 77df684..4639729 100644
--- a/metropolis/node/core/curator/listener.go
+++ b/metropolis/node/core/curator/listener.go
@@ -148,6 +148,9 @@
 			if nst.leader == nil {
 				return fmt.Errorf("this curator stopped being a leader, quitting")
 			}
+			if !st.leader.equal(nst.leader) {
+				return fmt.Errorf("this curator got re-elected, quitting")
+			}
 		}
 	case st.follower != nil:
 		supervisor.Logger(ctx).Infof("Follower running until leadership change.")
@@ -159,6 +162,9 @@
 			if nst.follower == nil {
 				return fmt.Errorf("this curator stopped being a follower, quitting")
 			}
+			if !st.follower.equal(nst.follower) {
+				return fmt.Errorf("leader changed, quitting")
+			}
 		}
 	default:
 		panic("unreachable")
