diff --git a/src/processor/processor_base.cpp b/src/processor/processor_base.cpp
index 472bffb8d1a7ab3e470099eadf0084c544be1f88..d2ead9ce8ad15391d155f3f3a5bf4f96d276cbcf 100644
--- a/src/processor/processor_base.cpp
+++ b/src/processor/processor_base.cpp
@@ -52,12 +52,13 @@ void ProcessorBase::captureCallback(CaptureBasePtr _capture_ptr)
     assert(_capture_ptr != nullptr && "captureCallback with a nullptr capture");
     WOLF_DEBUG("P", isMotion() ? "M " : "T ", getName(), ": Capture ", _capture_ptr->id(), " callback received with ts = ", _capture_ptr->getTimeStamp());
 
-    // if trigger, process directly without buffering
-    if (triggerInCapture(_capture_ptr))
-        processCapture(_capture_ptr);
     // asking if capture should be stored
     if (storeCapture(_capture_ptr))
         buffer_capture_.add(_capture_ptr->getTimeStamp(), _capture_ptr);
+
+    // if trigger, process directly without buffering
+    if (triggerInCapture(_capture_ptr))
+        processCapture(_capture_ptr);
 }
 
 void ProcessorBase::remove()