diff --git a/app/lib/indexer.ts b/app/lib/indexer.ts
index c4e4c6b6c317fd615533fa7f89a8237b555a01d4..42b8cea8882caa6a8623f4fe8070a519b4cde1ca 100644
--- a/app/lib/indexer.ts
+++ b/app/lib/indexer.ts
@@ -222,7 +222,7 @@ export class Indexer {
           unchainables: 0,
           type: 'JOIN',
           expires_on: conf.msValidity,
-          expired_on: null,
+          expired_on: 0,
           revokes_on: conf.msValidity * constants.REVOCATION_FACTOR,
           revocation: null,
           chainable_on: block.medianTime + conf.msPeriod,
diff --git a/doc/Protocol.md b/doc/Protocol.md
index 68a5300a4c3744b878f4c44cf058d8c89764e801..f8b7c0b58e659a0e0826e7d2dfb5429270279e63 100644
--- a/doc/Protocol.md
+++ b/doc/Protocol.md
@@ -2133,6 +2133,8 @@ For each ENTRY in local MINDEX where `op = 'UPDATE', expired_on = 0`:
 
     ENTRY.joinsTwice = REDUCE(GLOBAL_IINDEX[pub=ENTRY.pub]).member == true
 
+> This rule ensures that someone who is in the `Joiners` field isn't already a member.
+
 ####### BR_G27 - ENTRY.enoughCerts
 
 For each ENTRY in local MINDEX where `type == 'JOIN' OR type == 'ACTIVE'`: