diff --git a/src/pdf/qpdfdocument.cpp b/src/pdf/qpdfdocument.cpp
index 3ef947f88b42a9205de352cf2449ae0c6995aabc..709c702bf291cefd4dcfb60751b6fb24e1964354 100644
--- a/src/pdf/qpdfdocument.cpp
+++ b/src/pdf/qpdfdocument.cpp
@@ -251,9 +251,15 @@ void QPdfDocumentPrivate::checkComplete()
 
     QPdfMutexLocker lock;
 
-    for (int i = 0, count = FPDF_GetPageCount(doc); i < count; ++i)
-        if (!FPDFAvail_IsPageAvail(avail, i, this))
+    for (int i = 0, count = FPDF_GetPageCount(doc); i < count; ++i) {
+        int result = PDF_DATA_NOTAVAIL;
+        while (result == PDF_DATA_NOTAVAIL) {
+            result = FPDFAvail_IsPageAvail(avail, i, this);
+        }
+
+        if (result == PDF_DATA_ERROR)
             loadComplete = false;
+    }
 
     lock.unlock();