diff --git a/Application/src/tracker/VideoOpener.cpp b/Application/src/tracker/VideoOpener.cpp
index 8f97849e779ab5317781d1a96a6677836e1e2b29..807031e3c732d73fb84bb914f8ae6505a20e6d30 100644
--- a/Application/src/tracker/VideoOpener.cpp
+++ b/Application/src/tracker/VideoOpener.cpp
@@ -212,6 +212,10 @@ VideoOpener::VideoOpener() {
         return false;
     });
     
+    _file_chooser->set_on_open([this](auto){
+        _buffer = nullptr;
+    });
+    
     _file_chooser->open();
 }
 
diff --git a/Application/src/tracker/main.cpp b/Application/src/tracker/main.cpp
index 04175cc199d47da20c8c39cd6cee431119404788..d66f8a7ba89252a6eac04af43540e1697932a498 100644
--- a/Application/src/tracker/main.cpp
+++ b/Application/src/tracker/main.cpp
@@ -542,8 +542,12 @@ int main(int argc, char** argv)
     #endif
                     auto exec = wd.str() + " " + opening_result.cmd;
                     Debug("Executing '%S'", &exec);
-                    file::exec(exec.c_str());
-                    exit(0);
+                    auto pid = fork();
+                    if(pid == 0) {
+                        file::exec(exec.c_str());
+                        exit(0);
+                    }
+                    return 0;
                 }
             } else
                 SETTING(filename) = file::Path();