diff --git a/src/bob/bio/base/database/utils.py b/src/bob/bio/base/database/utils.py
index 75aa669dd47381f6af88a3ad77fe1398bcb9fdc2..ca2a92b8ffad102a6e6831707d05d46051d0bd73 100644
--- a/src/bob/bio/base/database/utils.py
+++ b/src/bob/bio/base/database/utils.py
@@ -599,7 +599,8 @@ def download_file(
                 f"correspond to '{checksum}'."
             )
 
-    if extract:
+    # Extract only if the file was re-downloaded
+    if extract and needs_download:
         local_file = extract_archive(local_file)
 
     return local_file