diff --git a/src/effects/NoiseReduction.cpp b/src/effects/NoiseReduction.cpp
index 3b769bcdb67c36a46c8cade6bb3f175b753e1db6..d490f263e03b85e59a27fef81dde6b18a067ab70 100644
--- a/src/effects/NoiseReduction.cpp
+++ b/src/effects/NoiseReduction.cpp
@@ -741,14 +741,18 @@ bool EffectNoiseReduction::Worker::Process(
             if (!TrackSpectrumTransformer::Process(
                Processor, pChannel, mHistoryLen, start, len))
                return false;
-            tempList->Add(mOutputTrack);
-            assert(mOutputTrack->IsLeader() == pChannel->IsLeader());
-            mOutputTrack.reset();
+            if (mOutputTrack) {
+               tempList->Add(mOutputTrack);
+               assert(mOutputTrack->IsLeader() == pChannel->IsLeader());
+               mOutputTrack.reset();
+            }
             ++mProgressTrackCount;
          }
-         auto iter = TrackList::Channels(*tempList->Leaders().begin()).begin();
-         for (const auto pChannel : TrackList::Channels(track))
-            pChannel->ClearAndPaste(t0, t0 + tLen, *iter++, true, false);
+         if (tempList->Size()) {
+            auto iter = TrackList::Channels(*tempList->Leaders().begin()).begin();
+            for (const auto pChannel : TrackList::Channels(track))
+               pChannel->ClearAndPaste(t0, t0 + tLen, *iter++, true, false);
+         }
       }
    }