diff --git a/src/sources/mastodon.js b/src/sources/mastodon.js
index 1bdb51ffe49fe9aa7dca3a9d089826a2797a41d6..9b7757edbc9c319f3d167a88969b8825907daacd 100644
--- a/src/sources/mastodon.js
+++ b/src/sources/mastodon.js
@@ -98,14 +98,20 @@ export default {
     // results.progress = 0
     // results.progressCount
     results.accounts = {}
-    let cont = true
-    while (cont) {
+    let tooOld = 0
+    let maxOld = 5
+    while (tooOld < maxOld) {
       let response = await client.get(url, {params: {limit: 40}})
       response.data.forEach((f) => {
         let date = moment(f.created_at)
+        // ugly hack because we don't have any way to query favorite date, and mastodon
+        // return toots in reverse favorite date order, so favoriting a very old toot
+        // can result in little to no suggestions
         if (date.isBefore(dateLimit)) {
-          cont = false
-          return
+          tooOld += 1
+        } else {
+          // we reset the counter
+          tooOld = 0
         }
         handledFavorites += 1
         results.progressCount += 1