diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt
index 577642234bb70ab78ced41845662cbc71f2ca723..05fd2b6f68a5038195dd1a81859802a8ffb2d808 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/AuthenticationService.kt
@@ -152,6 +152,11 @@ interface AuthenticationService {
             deviceId: String? = null
     ): Session
 
+    /**
+     * Added for switch user
+     */
+    suspend fun switchToSessionWithId(id: String)
+
     /**
      * Added for switch user
      */
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt
index 997a8f36b55a42608c8a45721e2203a115ce1ac1..52b76dc3a30d38a1a3a51616a346bbe578bd71df 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/SessionManager.kt
@@ -74,10 +74,15 @@ internal class SessionManager @Inject constructor(
     }
 
     //Added for switch user
-    fun getAllSessionParams(): List<SessionParams> {
-        return sessionParamsStore.getAll()
+    suspend fun setActiveSessionAsLast(sessionId: String) {
+        val sessionParams = sessionParamsStore.get(sessionId) ?: return
+        sessionParamsStore.delete(sessionId)
+        sessionParamsStore.save(sessionParams)
     }
 
+    //Added for switch user
+    fun getAllSessionParams(): List<SessionParams> = sessionParamsStore.getAll()
+
     //Added for switch user
     suspend fun removeSession(sessionId: String) {
         sessionComponents.remove(sessionId)
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt
index dffe35b106ed25ca8d7413f9bde9de6fd187e1eb..bb23b0c949028f7b00100bb63d5cd614f00ccf18 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/DefaultAuthenticationService.kt
@@ -487,6 +487,11 @@ internal class DefaultAuthenticationService @Inject constructor(
         }
     }
 
+    //Added for switch user
+    override suspend fun switchToSessionWithId(id: String) {
+        sessionManager.setActiveSessionAsLast(id)
+    }
+
     //Added for switch user
     override fun getAllAuthSessionsParams(): List<SessionParams> = sessionManager.getAllSessionParams()