diff --git a/src/ReadReceiptsModel.cpp b/src/ReadReceiptsModel.cpp
index 0be22be2d8284612378ef3c012bdf72c0b6e02b7..d8b7141fcf232352c9be13658c0fd5888e2582bd 100644
--- a/src/ReadReceiptsModel.cpp
+++ b/src/ReadReceiptsModel.cpp
@@ -125,11 +125,6 @@ ReadReceiptsProxy::ReadReceiptsProxy(QString event_id, QString room_id, QObject
 {
         setSourceModel(&model_);
         setSortRole(ReadReceiptsModel::RawTimestamp);
-}
-
-bool
-ReadReceiptsProxy::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const
-{
-        // since we are sorting from greatest to least timestamp, return something that looks totally backwards!
-        return source_left.data().toULongLong() > source_right.data().toULongLong();
+        sort(0, Qt::DescendingOrder);
+        setDynamicSortFilter(true);
 }
diff --git a/src/ReadReceiptsModel.h b/src/ReadReceiptsModel.h
index 9e26bcd5eda83fdf20a381a951743635836dbe8e..3b45716c555d47a541635644f1fbfa6562344011 100644
--- a/src/ReadReceiptsModel.h
+++ b/src/ReadReceiptsModel.h
@@ -63,8 +63,6 @@ public:
         QString eventId() const { return event_id_; }
         QString roomId() const { return room_id_; }
 
-        bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const;
-
 private:
         QString event_id_;
         QString room_id_;