diff --git a/typo3/sysext/backend/Classes/Backend/ToolbarItems/UserToolbarItem.php b/typo3/sysext/backend/Classes/Backend/ToolbarItems/UserToolbarItem.php
index 0a4c44fb580b558924a06be811ffb80d72b3e1ba..4b36257c9594fca8d80bc95e8c1ba328816b8f99 100644
--- a/typo3/sysext/backend/Classes/Backend/ToolbarItems/UserToolbarItem.php
+++ b/typo3/sysext/backend/Classes/Backend/ToolbarItems/UserToolbarItem.php
@@ -17,6 +17,8 @@ namespace TYPO3\CMS\Backend\Backend\ToolbarItems;
 use TYPO3\CMS\Backend\Domain\Repository\Module\BackendModuleRepository;
 use TYPO3\CMS\Backend\Toolbar\ToolbarItemInterface;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
+use TYPO3\CMS\Core\Database\Connection;
+use TYPO3\CMS\Core\Database\ConnectionPool;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Fluid\View\StandaloneView;
@@ -71,15 +73,37 @@ class UserToolbarItem implements ToolbarItemInterface
             && isset($backendUser->uc['recentSwitchedToUsers'])
             && is_array($backendUser->uc['recentSwitchedToUsers'])
         ) {
-            foreach ($backendUser->uc['recentSwitchedToUsers'] as $userUid) {
-                $backendUserRecord = BackendUtility::getRecord('be_users', $userUid);
-                $backendUserRecord['switchUserLink'] = BackendUtility::getModuleUrl(
+            $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('be_users');
+            $result = $queryBuilder
+                ->select('uid', 'username', 'realName')
+                ->from('be_users')
+                ->where(
+                    $queryBuilder->expr()->in('uid', $queryBuilder->createNamedParameter($backendUser->uc['recentSwitchedToUsers'], Connection::PARAM_INT_ARRAY))
+                )->execute();
+
+            // Flip the array to have a "sorted" list of items
+            $mostRecentUsers = array_flip($backendUser->uc['recentSwitchedToUsers']);
+
+            while ($row = $result->fetch()) {
+                $row['switchUserLink'] = BackendUtility::getModuleUrl(
                     'system_BeuserTxBeuser',
-                        [
-                            'SwitchUser' => $backendUserRecord['uid']
-                        ]
+                    [
+                        'SwitchUser' => $row['uid']
+                    ]
                 );
-                $mostRecentUsers[] = $backendUserRecord;
+
+                $mostRecentUsers[$row['uid']] = $row;
+            }
+
+            // Remove any item that is not an array (means, the stored uid is not available anymore)
+            $mostRecentUsers = array_filter($mostRecentUsers, function ($record) {
+                return is_array($record);
+            });
+
+            $availableUsers = array_keys($mostRecentUsers);
+            if (!empty(array_diff($backendUser->uc['recentSwitchedToUsers'], $availableUsers))) {
+                $backendUser->uc['recentSwitchedToUsers'] = $availableUsers;
+                $backendUser->writeUC();
             }
         }
 
diff --git a/typo3/sysext/backend/Resources/Private/Language/locallang.xlf b/typo3/sysext/backend/Resources/Private/Language/locallang.xlf
index a2d1f3efae28eaf2e53e79f0b2a8bf2c6aa9895c..415e7351619cd8f65fef65cb0d7206dda1b5f134 100644
--- a/typo3/sysext/backend/Resources/Private/Language/locallang.xlf
+++ b/typo3/sysext/backend/Resources/Private/Language/locallang.xlf
@@ -20,7 +20,7 @@
 Have a nice day.</source>
 			</trans-unit>
 			<trans-unit id="usermodule.su.list">
-				<source>Recently 'switched to' users</source>
+				<source>Recently switched to</source>
 			</trans-unit>
 			<trans-unit id="usermodule.su.tooltip">
 				<source>Switch to user %s</source>