--- a/scantpaper/tests/test_7_canvas.py
+++ b/scantpaper/tests/test_7_canvas.py
@@ -1965,7 +1965,7 @@
             sorted_word_indices=indices,
             finished_callback=lambda: mlp.quit(),
         )
-        GLib.timeout_add(2000, mlp.quit)
+        GLib.timeout_add(10000, mlp.quit)
         mlp.run()
 
         # Verify it actually loaded all words
--- a/scantpaper/tests/test_411_tesseract.py
+++ b/scantpaper/tests/test_411_tesseract.py
@@ -91,7 +91,7 @@
         language="eng",
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     page = slist.thread.get_page(number=1)
--- a/scantpaper/tests/test_1111_save_pdf.py
+++ b/scantpaper/tests/test_1111_save_pdf.py
@@ -91,7 +91,7 @@
         finished_callback=import_files_finished_cb,
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     # FIXME: add support for completed, total vars
@@ -124,7 +124,7 @@
         finished_callback=save_pdf_finished_cb,
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
     assert asserts == 5, "ran all callbacks"
 
@@ -162,7 +162,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=mlp.quit,
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", temp_pdf.name], text=True)
@@ -199,7 +199,7 @@
             list_of_pages=[slist.data[0][2]],
             error_callback=error_callback1,
         )
-        GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+        GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
         mlp.run()
 
         def error_callback2(_page, _process, _message):
@@ -215,7 +215,7 @@
             list_of_pages=[slist.data[0][2]],
             error_callback=error_callback2,
         )
-        GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+        GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
         mlp.run()
 
         assert asserts == 2, "ran all callbacks"
@@ -246,7 +246,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", temp_pdf.name], text=True)
@@ -273,7 +273,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     with pytest.raises(subprocess.CalledProcessError):
@@ -362,7 +362,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
     subprocess.run(["cp", temp_pdf.name, "fox.pdf"], check=True)
 
@@ -420,7 +420,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     out = subprocess.check_output(["pdftotext", temp_pdf.name, "-"], text=True)
@@ -456,7 +456,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     out = subprocess.check_output(["pdftotext", temp_pdf.name, "-"], text=True)
@@ -486,7 +486,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     subprocess.run(["pdfimages", temp_pdf.name, "x"], check=True)
@@ -511,7 +511,7 @@
         },
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     subprocess.run(["pdfimages", temp_pdf.name, "x"], check=True)
@@ -556,7 +556,7 @@
         },
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     subprocess.run(
@@ -626,7 +626,7 @@
         options={"set_timestamp": True},
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     info = subprocess.check_output(["pdfinfo", "-isodates", temp_pdf.name], text=True)
@@ -673,7 +673,7 @@
         finished_callback=lambda response: mlp.quit(),
         error_callback=error_callback,
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     assert called, "caught errors setting timestamp"
@@ -724,7 +724,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     with tempfile.NamedTemporaryFile(suffix=".pdf") as temp_pdf2:
@@ -738,7 +738,7 @@
             },
             finished_callback=lambda response: mlp.quit(),
         )
-        GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+        GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
         mlp.run()
 
         assert os.path.getsize(temp_pdf.name) > os.path.getsize(
@@ -780,7 +780,7 @@
         finished_callback=finished_callback,
     )
     slist.cancel(cancelled_callback)
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
     finished_callback.assert_not_called()
 
@@ -790,7 +790,7 @@
         finished_callback=lambda response: mlp.quit(),
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     assert subprocess.check_output(
--- a/scantpaper/tests/test_1162_save_multipage_pdf.py
+++ b/scantpaper/tests/test_1162_save_multipage_pdf.py
@@ -44,7 +44,7 @@
         list_of_pages=pages,
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdffonts", temp_pdf.name], text=True)
@@ -89,7 +89,7 @@
         list_of_pages=pages,
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     assert (
@@ -132,7 +132,7 @@
             finished_callback=lambda response: mlp.quit(),
         )
         mlp = GLib.MainLoop()
-        GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+        GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
         mlp.run()
 
         assert os.path.getsize(temp_ps.name) > 194000, "non-empty postscript created"
@@ -168,7 +168,7 @@
             finished_callback=lambda response: mlp.quit(),
         )
         mlp = GLib.MainLoop()
-        GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+        GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
         mlp.run()
 
         assert os.path.getsize(temp_ps.name) > 15500, "non-empty postscript created"
@@ -199,7 +199,7 @@
         finished_callback=lambda response: mlp.quit(),
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", temp_pdf.name], text=True)
@@ -231,7 +231,7 @@
         finished_callback=lambda response: mlp.quit(),
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", temp_pdf.name], text=True)
@@ -264,7 +264,7 @@
         finished_callback=lambda response: mlp.quit(),
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", "te st.pdf"], text=True)
@@ -297,7 +297,7 @@
         finished_callback=lambda response: mlp.quit(),
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", "te'st.pdf"], text=True)
@@ -336,7 +336,7 @@
         finished_callback=lambda response: mlp.quit(),
     )
     mlp = GLib.MainLoop()
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     capture = subprocess.check_output(["pdfinfo", temp_pdf.name], text=True)
--- a/scantpaper/tests/test_371_user_defined.py
+++ b/scantpaper/tests/test_371_user_defined.py
@@ -45,7 +45,7 @@
         command="convert %i -negate %o",
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     mlp = GLib.MainLoop()
@@ -53,7 +53,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     page = slist.thread.get_page(number=1)
@@ -83,7 +83,7 @@
         command="convert %i -negate %i",
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     mlp = GLib.MainLoop()
@@ -91,7 +91,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     page = slist.thread.get_page(number=1)
@@ -130,7 +130,7 @@
         command="convert %i tmp.pbm;mv tmp.pbm %i",
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     page = slist.thread.get_page(number=1)
@@ -142,7 +142,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     new = subprocess.check_output(
@@ -177,7 +177,7 @@
         command="convert %i tmp.ppm;mv tmp.ppm %i",
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     page = slist.thread.get_page(number=1)
@@ -215,7 +215,7 @@
         logger_callback=logger_cb,
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     mlp = GLib.MainLoop()
@@ -223,7 +223,7 @@
         list_of_pages=[slist.data[0][2]],
         finished_callback=lambda response: mlp.quit(),
     )
-    GLib.timeout_add(2000, mlp.quit)  # to prevent it hanging
+    GLib.timeout_add(5000, mlp.quit)  # to prevent it hanging
     mlp.run()
 
     assert asserts == 1, "all callbacks run"
