diff --git a/src/osmo_gsm_tester/process.py b/src/osmo_gsm_tester/process.py
index 441d4ea..66ecae5 100644
--- a/src/osmo_gsm_tester/process.py
+++ b/src/osmo_gsm_tester/process.py
@@ -104,7 +104,10 @@
             time.sleep(wait_step)
 
     def terminate_all(self):
-        self.dbg("Scheduled to terminate %d processes." % len(self._processes))
+        num_processes = len(self._processes)
+        self.dbg("Scheduled to terminate %d processes." % num_processes)
+        if num_processes == 0:
+            return
         self._prune_dead_processes(True)
         self._build_process_map()
 
@@ -116,6 +119,8 @@
             if sig == signal.SIGKILL:
                 continue
             self._poll_for_termination()
+            if len(self._processes) == 0:
+                return
 
 
 class Process(log.Origin):
diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py
index 85eca46..0738e96 100644
--- a/src/osmo_gsm_tester/suite.py
+++ b/src/osmo_gsm_tester/suite.py
@@ -244,6 +244,8 @@
         self._processes.insert(0, (process, respawn))
 
     def stop_processes(self):
+        if len(self._processes) == 0:
+            return
         strategy = process.ParallelTerminationStrategy()
         while self._processes:
             proc, _ = self._processes.pop()
