diff --git a/ApplicationComponents/lqStreamRecordReaction.cxx b/ApplicationComponents/lqStreamRecordReaction.cxx
index d0f5a7ef02f68fc783e4bffbbe0ec7166b23dddd..bce083f9254ac98e6fec9d94e13f0897fae0de22 100644
--- a/ApplicationComponents/lqStreamRecordReaction.cxx
+++ b/ApplicationComponents/lqStreamRecordReaction.cxx
@@ -69,7 +69,6 @@ void lqStreamRecordReaction::onTriggered()
   {
     this->StartRecordingReaction();
   }
-  this->isRecording = !this->isRecording;
 }
 
 //-----------------------------------------------------------------------------
@@ -98,13 +97,15 @@ void lqStreamRecordReaction::StartRecordingReaction()
   if(useAdvancedDialog)
   {
     lqStreamRecordDialog dialog(nullptr, defaultFileName);
-    if (dialog.exec())
+    if ( dialog.exec() == QDialog::Rejected )
     {
-      this->parentAction()->setToolTip("Stop Recording Stream Data");
-      this->recordingFilename = dialog.recordingFile();
-      QFile::copy(QString::fromStdString(interpreter->GetCalibrationFileName()),
-                  dialog.calibrationFile());
+      // Cancel
+      return;
     }
+    // Get User input Filename
+    this->recordingFilename = dialog.recordingFile();
+    QFile::copy(QString::fromStdString(interpreter->GetCalibrationFileName()),
+                dialog.calibrationFile());
   }
   else
   {
@@ -114,27 +115,34 @@ void lqStreamRecordReaction::StartRecordingReaction()
     this->recordingFilename = QFileDialog::getSaveFileName(nullptr,
                     QString("Record File:"), defaultFileName, QString("PCAP (*.pcap)"));
   }
-  if (this->recordingFilename != "")
+  if (this->recordingFilename == "")
   {
-    // Create common writer Thread
-    std::shared_ptr<PacketFileWriter> writer = std::make_shared<PacketFileWriter>();
-    // Tell vtkStreams to Start Recording
-    foreach (pqPipelineSource* src, smmodel->findItems<pqPipelineSource*>())
-    {
-      auto* stream = dynamic_cast<vtkStream*> (src->getProxy()->GetClientSideObject());
-      if(!stream){continue;}
-      stream->StartRecording( // Multiple start is okay, it detects it
-        this->recordingFilename.toStdString(),
-        writer
-      );
-    }
-
-    this->parentAction()->setChecked(true);
+    std::cout << "Recording Filename is empty, aborting." << std::endl;
+    return;
+  }
 
-    // Save the path where the pcap is saved
-    QFileInfo fileInfo(this->recordingFilename);
-    this->Settings->setValue("LidarPlugin/RecordReaction/DefaultFolder", fileInfo.absolutePath());
+  // Create common writer Thread
+  std::shared_ptr<PacketFileWriter> writer = std::make_shared<PacketFileWriter>();
+  // Tell vtkStreams to Start Recording
+  foreach (pqPipelineSource* src, smmodel->findItems<pqPipelineSource*>())
+  {
+    auto* stream = dynamic_cast<vtkStream*> (src->getProxy()->GetClientSideObject());
+    if(!stream){continue;}
+    stream->StartRecording( // Multiple start is okay, it detects it
+      this->recordingFilename.toStdString(),
+      writer
+    );
   }
+
+  // Update state
+  this->isRecording = true;
+  this->parentAction()->setToolTip("Stop Recording Stream Data");
+  this->parentAction()->setChecked(true);
+
+  // Save the path where the pcap is saved
+  QFileInfo fileInfo(this->recordingFilename);
+  this->Settings->setValue("LidarPlugin/RecordReaction/DefaultFolder", fileInfo.absolutePath());
+
 }
 
 //-----------------------------------------------------------------------------
@@ -149,6 +157,8 @@ void lqStreamRecordReaction::StopRecordingReaction()
     stream->StopRecording();
   }
 
+  // Update State
+  this->isRecording = false;
   this->parentAction()->setToolTip("Start Recording Stream Data");
   this->parentAction()->setChecked(false);