diff --git a/lib/reducers/draft-reducer.js b/lib/reducers/draft-reducer.js
--- a/lib/reducers/draft-reducer.js
+++ b/lib/reducers/draft-reducer.js
@@ -8,7 +8,9 @@
 import {
   deleteKeyserverAccountActionTypes,
   logOutActionTypes,
+  deleteAccountActionTypes,
 } from '../actions/user-actions.js';
+import { extractKeyserverIDFromID } from '../keyserver-conn/keyserver-call-utils.js';
 import { setNewSessionActionType } from '../keyserver-conn/keyserver-conn-types.js';
 import type { DraftStore, DraftStoreOperation } from '../types/draft-types.js';
 import type { BaseAction } from '../types/redux-types.js';
@@ -18,20 +20,52 @@
   +draftStore: DraftStore,
 };
 
+function removeKeyserversDraftsFromStore(
+  draftStore: DraftStore,
+  keyserverIDs: $ReadOnlyArray<string>,
+): ReduceDraftStoreResult {
+  const keyserverIDsSet = new Set<string>(keyserverIDs);
+
+  const drafts: { [key: string]: string } = {};
+  const ids: string[] = [];
+  for (const key in draftStore.drafts) {
+    if (keyserverIDsSet.has(extractKeyserverIDFromID(key))) {
+      ids.push(key);
+    } else {
+      drafts[key] = draftStore.drafts[key];
+    }
+  }
+
+  return {
+    draftStoreOperations: [{ type: 'remove', payload: { ids } }],
+    draftStore: { ...draftStore, drafts },
+  };
+}
+
 function reduceDraftStore(
   draftStore: DraftStore,
   action: BaseAction,
 ): ReduceDraftStoreResult {
   if (
     action.type === logOutActionTypes.success ||
-    action.type === deleteKeyserverAccountActionTypes.success ||
-    (action.type === setNewSessionActionType &&
-      action.payload.sessionChange.cookieInvalidated)
+    action.type === deleteAccountActionTypes.success
   ) {
     return {
       draftStoreOperations: [{ type: 'remove_all' }],
       draftStore: { drafts: {} },
     };
+  } else if (action.type === deleteKeyserverAccountActionTypes.success) {
+    return removeKeyserversDraftsFromStore(
+      draftStore,
+      action.payload.keyserverIDs,
+    );
+  } else if (
+    action.type === setNewSessionActionType &&
+    action.payload.sessionChange.cookieInvalidated
+  ) {
+    return removeKeyserversDraftsFromStore(draftStore, [
+      action.payload.keyserverID,
+    ]);
   } else if (action.type === updateDraftActionType) {
     const { key, text } = action.payload;
 
@@ -88,4 +122,4 @@
   return { draftStore, draftStoreOperations: [] };
 }
 
-export { reduceDraftStore };
+export { reduceDraftStore, removeKeyserversDraftsFromStore };
diff --git a/lib/reducers/draft-reducer.test.js b/lib/reducers/draft-reducer.test.js
new file mode 100644
--- /dev/null
+++ b/lib/reducers/draft-reducer.test.js
@@ -0,0 +1,40 @@
+// @flow
+
+import { removeKeyserversDraftsFromStore } from './draft-reducer.js';
+
+describe('removeKeyserversDraftsFromStore', () => {
+  const keyserver1 = '256';
+  const keyserver2 = '100';
+  const keyserver3 = '200';
+
+  const drafts1 = {
+    [keyserver1 + '|1']: 'test',
+    [keyserver1 + '|2']: 'test',
+    [keyserver1 + '|3']: 'test',
+  };
+  const drafts2 = {
+    [keyserver2 + '|1']: 'test',
+    [keyserver2 + '|2']: 'test',
+    [keyserver2 + '|3']: 'test',
+  };
+  const drafts3 = {
+    [keyserver3 + '|1']: 'test',
+    [keyserver3 + '|2']: 'test',
+    [keyserver3 + '|3']: 'test',
+  };
+
+  it('removes drafts of given keyservers', () => {
+    const result = removeKeyserversDraftsFromStore(
+      { drafts: { ...drafts1, ...drafts2, ...drafts3 } },
+      [keyserver1, keyserver2],
+    );
+    expect(result.draftStoreOperations).toEqual([
+      {
+        type: 'remove',
+        payload: { ids: [...Object.keys(drafts1), ...Object.keys(drafts2)] },
+      },
+    ]);
+
+    expect(result.draftStore.drafts).toEqual(drafts3);
+  });
+});