diff --git a/bibliovid_add_abstract.py b/bibliovid_add_abstract.py
index df59b606bc28aad703e0c5d6ab67908501552386..c418f2307a3661a920be50314d8d4d53c21a153e 100644
--- a/bibliovid_add_abstract.py
+++ b/bibliovid_add_abstract.py
@@ -5,6 +5,8 @@ import sys, json, re, collections
 
 from pymed import PubMed
 from datetime import datetime, date
+import requests
+import time
 
 pubmed = PubMed(tool="https://covid19.lis-lab.fr", email="benoit.favre@univ-amu.fr")
 
@@ -32,16 +34,22 @@ for article in articles['results']:
 
   found = False
   for query in ['(%s[Title] AND (%s[Author])' % (preprocess(title), preprocess(authors)), '%s[Title]' % preprocess(title), preprocess(title)]:
-    results = pubmed.query(query, max_results=30)
-    for result in results:
-      entry = result.toDict()
-      if normalize(title) == normalize(entry['title']):
-        found = True
-        for field in ['pubmed_id', 'doi', 'abstract']:
-          if field in entry:
-            article[field] = entry[field]
-            stats[field] += 1
+    for retries in range(10):
+      try:
+        results = pubmed.query(query, max_results=30)
+        for result in results:
+          entry = result.toDict()
+          if normalize(title) == normalize(entry['title']):
+            found = True
+            for field in ['pubmed_id', 'doi', 'abstract']:
+              if field in entry:
+                article[field] = entry[field]
+                stats[field] += 1
+            break
         break
+      except requests.exceptions.HTTPError as e:
+        print(e, file=sys.stderr)
+        time.sleep(5)
     if found:
       break
   if not found: