diff --git a/typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php b/typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
index 47f786d68776cdc1092b32c611e149362b916c17..ff7eabd623b3f097b1ba943ed3dc141ce59031ad 100644
--- a/typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
+++ b/typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
@@ -702,9 +702,18 @@ class AbstractDatabaseRecordList extends AbstractRecordList
             'FROM' => $table,
             'WHERE' => $this->getPageIdConstraint($table) . ' ' . $pC . BackendUtility::deleteClause($table) . BackendUtility::versioningPlaceholderClause($table) . ' ' . $addWhere . ' ' . $search,
             'GROUPBY' => '',
-            'ORDERBY' => $this->getDatabaseConnection()->stripOrderBy($orderBy),
             'LIMIT' => $limit
         );
+        $tempOrderBy = [];
+        foreach (QueryHelper::parseOrderBy($orderBy) as $orderPair) {
+            list($fieldName, $order) = $orderPair;
+            if ($order !== null) {
+                $tempOrderBy[] = implode(' ', $orderPair);
+            } else {
+                $tempOrderBy[] = $fieldName;
+            }
+        }
+        $queryParts['ORDERBY'] = implode(',', $tempOrderBy);
         // Filter out records that are translated, if TSconfig mod.web_list.hideTranslations is set
         if ((in_array($table, GeneralUtility::trimExplode(',', $this->hideTranslations)) || $this->hideTranslations === '*') && !empty($GLOBALS['TCA'][$table]['ctrl']['transOrigPointerField']) && $table !== 'pages_language_overlay') {
             $queryParts['WHERE'] .= ' AND ' . $GLOBALS['TCA'][$table]['ctrl']['transOrigPointerField'] . '=0 ';