diff --git a/src/stores/RoomListStore.js b/src/stores/RoomListStore.js
index 082535543c..8f1f8523f7 100644
--- a/src/stores/RoomListStore.js
+++ b/src/stores/RoomListStore.js
@@ -292,11 +292,15 @@ class RoomListStore extends Store {
             // Stack the user's tags on top
             tags.push(...this._filterTags(room.tags));
 
+            // Order matters here: The DMRoomMap updates before invites
+            // are accepted, so we check to see if the room is an invite
+            // first, then if it is a direct chat, and finally default
+            // to the "recents" list.
             const dmRoomMap = DMRoomMap.shared();
-            if (dmRoomMap.getUserIdForRoomId(room.roomId)) {
-                tags.push("im.vector.fake.direct");
-            } else if (myMembership === 'invite') {
+            if (myMembership === 'invite') {
                 tags.push("im.vector.fake.invite");
+            } else if (dmRoomMap.getUserIdForRoomId(room.roomId)) {
+                tags.push("im.vector.fake.direct");
             } else if (tags.length === 0) {
                 tags.push("im.vector.fake.recent");
             }