diff --git a/operator.md b/operator.md
index 25c90627579f533af54ffbb0178d1fa3aa67daf6..6819a61a5046bcf7e3c0119e148e871be636fde0 100644
--- a/operator.md
+++ b/operator.md
@@ -114,6 +114,30 @@ This needs to be done by an existing operator for the new person.
 8. Send an announcement to ircd@lists.indymedia.org to let everyone know that
    there is a new operator on board.
 
+### How to remove an operator
+
+1. ssh to all network hosts and remove their local user. Make sure that it's not
+   being brought back by puppet.
+
+2. TODO: remove their services access from atheme configuration and rehash
+   atheme configuration via operserv.
+
+3. in the sharedconf git repository, edit the file `opers.conf` and remove the
+   person's `operator` block. Then identify with operserv and rehash the
+   configuration with `/msg operserv rehash`.
+
+4. remove permission flags for the user on special channels `#ircd` and
+   `#services` with `/msg chanserv flags #ircd <user> -AFORVefiorstv` (and same
+   for the other channel). If necessary, kick them out of the private channels
+   restricted to operators -- `#ircd` is public so they can definitely continue
+   lurking there as they want.
+
+5. revoke their membership and remove their pgp key from the
+   ircd@lists.indymedia.org mailing list.
+
+6. send an announcement of the operator access removal to
+   ircd@lists.indymedia.org
+
 ## IRC Operator duties
 
 ### Securing a channel's operator status