diff --git a/README.md b/README.md
index 6dad81cfff13a363142cba72173ce21f75d970d5..dba5625deca9545818d4275beee9f11ddcc2a58d 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,6 @@
  - LD_LIBRARY_PATH must contain dir's path to libsandbox.so
  - Enter this command in the terminal where you are using your application
 ```
-REALTIVE_PATH_TO_SO=../ar_sandbox_lib/build && \
+REALTIVE_PATH_TO_SO=../../ar_sandbox_lib/build && \
 export LD_LIBRARY_PATH=$(pwd)/$REALTIVE_PATH_TO_SO
 ```
diff --git a/app/SandboxSetup/beamerlocationgui.cpp b/app/SandboxSetup/beamerlocationgui.cpp
index 213a2a1b436b9a9e989f17abefc02a79b30fb71c..51de4f524028709c1d874336b626bd3141c9e86a 100644
--- a/app/SandboxSetup/beamerlocationgui.cpp
+++ b/app/SandboxSetup/beamerlocationgui.cpp
@@ -30,6 +30,8 @@ BeamerLocationGui::BeamerLocationGui(SandboxSetup *_setup, MonitorGui *_mg, QWid
 BeamerLocationGui::~BeamerLocationGui()
 {
     delete timer;
+    myThread->quit();
+    myThread->wait();
     delete myThread;
     delete mut;
     delete winFullScreen;
@@ -37,13 +39,13 @@ BeamerLocationGui::~BeamerLocationGui()
 }
 
 void BeamerLocationGui::valideRoutine(){
-    endRoutine();
-    beamer->setPosition( (cv::Point3f)beamer->approximatePosition(&bases, &directions) );
+    //endRoutine();
+    //beamer->setPosition( (cv::Point3f)beamer->approximatePosition(&bases, &directions) );
     endSuccess = true;
 }
 
 void BeamerLocationGui::cancelRoutine(){
-    endRoutine();
+    //endRoutine();
     endSuccess = false;
 }
 
@@ -59,6 +61,8 @@ void BeamerLocationGui::showEvent(QShowEvent *event){
 
 void BeamerLocationGui::closeEvent(QCloseEvent *e){
     endRoutine();
+    if(endSuccess)
+        beamer->setPosition( (cv::Point3f)beamer->approximatePosition(&bases, &directions) );
     QWidget::closeEvent(e);
 }
 
@@ -77,7 +81,7 @@ void BeamerLocationGui::startRoutine(){
     updateLabelSteps();
 
     if(myThread->isRunning()){
-        myThread->exit(0);
+        myThread->quit();
         myThread->wait();
     }
 
@@ -167,7 +171,7 @@ void BeamerLocationGui::userValidePoint(){
 void BeamerLocationGui::endRoutine(){
 
     timer->stop();
-    myThread->exit(0);
+    myThread->quit();
     myThread->wait();
 
     endSuccess = (bases.size() == beamer->MAX_LINEAR_LINE_POINTS && directions.size() == beamer->MAX_LINEAR_LINE_POINTS);
diff --git a/app/SandboxSetup/camerafocusgui.cpp b/app/SandboxSetup/camerafocusgui.cpp
index 724ebdaaf6467ae38af4739c0d6fd24c81f1951e..fb3c5ae146869e13999c588b31586edebe0decb4 100644
--- a/app/SandboxSetup/camerafocusgui.cpp
+++ b/app/SandboxSetup/camerafocusgui.cpp
@@ -31,7 +31,7 @@ CameraFocusGui::~CameraFocusGui()
 {
     delete frameTimer;
     delete blackScreen;
-    myThread->exit(0);
+    myThread->quit();
     myThread->wait();
     delete myThread;
     delete ui;
@@ -50,9 +50,14 @@ void CameraFocusGui::showEvent(QShowEvent *event){
     frameTimer->start(100);
 }
 
+
+// TODO : Fixe bug timer
+
 void CameraFocusGui::closeEvent(QCloseEvent *event){
 
     frameTimer->stop();
+    myThread->quit();
+    myThread->wait();
     blackScreen->close();
     QWidget::closeEvent(event);
 }
diff --git a/app/SandboxSetup/initcameragui.cpp b/app/SandboxSetup/initcameragui.cpp
index 7b06f0d942145f6b4bfe4f9956cc70fbafb5b50d..14a434dd037f4ef073ec1deadf53c9bb269c9c80 100644
--- a/app/SandboxSetup/initcameragui.cpp
+++ b/app/SandboxSetup/initcameragui.cpp
@@ -26,11 +26,11 @@ InitCameraGui::InitCameraGui(SandboxSetup *_setup, QWidget *parent) :
 
     workerThread = new CameraStartThread(setup->getCamera());
     connect(workerThread, &CameraStartThread::setupReady, this, &InitCameraGui::setupReady);
-    connect(workerThread, &CameraStartThread::finished, workerThread, &QObject::deleteLater);
+    //connect(workerThread, &QThread::finished, workerThread, &QObject::deleteLater); // delete thread when finished
 }
 
 InitCameraGui::~InitCameraGui()
-{   
+{
     workerThread->quit();
     workerThread->wait();
     delete workerThread;