diff --git a/dangerzone/isolation_provider/qubes.py b/dangerzone/isolation_provider/qubes.py
index 36ff5ecf7..01214df4d 100644
--- a/dangerzone/isolation_provider/qubes.py
+++ b/dangerzone/isolation_provider/qubes.py
@@ -68,7 +68,7 @@ def __init__(self) -> None:
     def install(self) -> bool:
         return True
 
-    def _convert(
+    def __convert(
         self,
         document: Document,
         ocr_lang: Optional[str] = None,
@@ -124,13 +124,7 @@ def _convert(
             assert self.proc.stdout is not None
             os.set_blocking(self.proc.stdout.fileno(), False)
 
-            try:
-                n_pages = read_int(self.proc.stdout, timeout)
-            except errors.InterruptedConversion:
-                error_code = p.wait()
-                # XXX Reconstruct exception from error code
-                raise exception_from_error_code(error_code)  # type: ignore [misc]
-
+            n_pages = read_int(self.proc.stdout, timeout)
             if n_pages == 0:
                 # FIXME: Fail loudly in that case
                 return False
@@ -194,6 +188,19 @@ def print_progress_wrapper(error: bool, text: str, percentage: float) -> None:
 
         return success
 
+    def _convert(
+        self,
+        document: Document,
+        ocr_lang: Optional[str] = None,
+    ) -> bool:
+        try:
+            return self.__convert(document, ocr_lang)
+        except errors.InterruptedConversion:
+            assert self.proc is not None
+            error_code = self.proc.wait(3)
+            # XXX Reconstruct exception from error code
+            raise errors.exception_from_error_code(error_code)  # type: ignore [misc]
+
     def get_max_parallel_conversions(self) -> int:
         return 1