diff --git a/src/libcamera/software_isp/software_isp.cpp b/src/libcamera/software_isp/software_isp.cpp
index c73a16c..c801034 100644
--- a/src/libcamera/software_isp/software_isp.cpp
+++ b/src/libcamera/software_isp/software_isp.cpp
@@ -395,6 +395,9 @@ int SoftwareIsp::start()
  */
 void SoftwareIsp::stop()
 {
+ if (!ispWorkerThread_.isRunning())
+ return;
+
  debayer_->invokeMethod(&Debayer::stop,
        ConnectionTypeBlocking);

