diff --git a/src/core/processing/models/qgsprocessingmodelalgorithm.cpp b/src/core/processing/models/qgsprocessingmodelalgorithm.cpp index e2e923410e3..2e383400289 100644 --- a/src/core/processing/models/qgsprocessingmodelalgorithm.cpp +++ b/src/core/processing/models/qgsprocessingmodelalgorithm.cpp @@ -422,7 +422,7 @@ QVariantMap QgsProcessingModelAlgorithm::processAlgorithm( const QVariantMap &pa QVariantMap results; try { - if ( childAlg->flags() & QgsProcessingAlgorithm::FlagNoThreading ) + if ( ( childAlg->flags() & QgsProcessingAlgorithm::FlagNoThreading ) && ( QThread::currentThread() != qApp->thread() ) ) { // child algorithm run step must be called on main thread auto runOnMainThread = [modelThread, &context, &modelFeedback, &results, &childAlg, &childParams]