diff --git a/src/main.c b/src/main.c
index 27dc4cfb79a65b3585760c4ca9c52cd41c08899c..bdd145d703e20af266ad8c6c2ce9e1569ec38dc2 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1391,6 +1391,12 @@ main_scan(struct Masscan *masscan)
         if (time(0) - now >= masscan->wait)
             is_rx_done = 1;
 
+        if (time(0) - now - 5 > masscan->wait)
+        {
+            printf("Passed the wait window but still running, forceful exit.\n");
+            exit(0);
+        }
+
         if (masscan->output.is_status_updates) {
             status_print(&status, min_index, range, rate,
                 total_tcbs, total_synacks, total_syns,