diff --git a/Examples/LaparoscopicCamera/main.cpp b/Examples/LaparoscopicCamera/main.cpp
index c45a079c7eb4af9b6d2f8b0f06cdf7485ae35918..7de9b0b82136be444def10b5c1b5afd3b61ba697 100644
--- a/Examples/LaparoscopicCamera/main.cpp
+++ b/Examples/LaparoscopicCamera/main.cpp
@@ -58,8 +58,8 @@
 #include "vtkFloatArray.h"
 #include "vtkPlotPoints.h"
 #include "vtkTable.h"
-#include "vtkNew.h"
 #include "vtkAxis.h"
+#include "vtkNew.h"
 
 #define SPACE_EXPLORER_DEVICE true
 
@@ -330,10 +330,10 @@ int main(int ac, char** av)
     std::shared_ptr<LaparoscopicCameraCoupler> camController = addCameraController(sdk);
 
     // Enable screenshot capture
-    //camController->enableScreenCapture();
+    camController->enableScreenCapture();
 
     std::shared_ptr<VTKViewer> vtkViewer = std::static_pointer_cast<VTKViewer>(viewer);
-    //vtkViewer->setScreenCaptureData(camController->getScreenCaptureData());
+    vtkViewer->setScreenCaptureData(camController->getScreenCaptureData());
 
     // Add a 2D overlay on the 3D scene
     add2DOverlay(vtkViewer);
diff --git a/VTKRendering/VTKViewer.cpp b/VTKRendering/VTKViewer.cpp
index 68e94871b349cbf34a75e0e07b90e5a24408968c..4d4e6571619107b63ca5c772439351752f3c80af 100644
--- a/VTKRendering/VTKViewer.cpp
+++ b/VTKRendering/VTKViewer.cpp
@@ -68,30 +68,31 @@ public:
                 if(timerId == *static_cast<int*>(callData) &&
                     !this->viewer->isTerminated())
                 {
+
                     if (this->cameraControllerData != nullptr)
                     {
                         updateCamera();
                     }
 
-                    //if (this->screenCaptureData != nullptr)
-                    //{
-                    //    if (this->screenCaptureData->triggerScreenCapture)
-                    //    {
-                    //        //this->screenCaptureData->windowToImageFilter->Update();
+                    if (this->screenCaptureData != nullptr)
+                    {
+                        if (this->screenCaptureData->triggerScreenCapture)
+                        {
+                            //this->screenCaptureData->windowToImageFilter->Update();
 
-                    //        std::string captureName = "screenShot-"
-                    //            + std::to_string(this->screenCaptureData->screenShotNumber)
-                    //            + ".png";
+                            std::string captureName = "screenShot-"
+                                + std::to_string(this->screenCaptureData->screenShotNumber)
+                                + ".png";
 
-                    //        this->screenCaptureData->pngWriter->SetFileName(
-                    //            captureName.data());
+                            this->screenCaptureData->pngWriter->SetFileName(
+                                captureName.data());
 
-                    //        this->screenCaptureData->pngWriter->Write();
+                            this->screenCaptureData->pngWriter->Write();
 
-                    //        this->screenCaptureData->screenShotNumber++;
-                    //        this->screenCaptureData->triggerScreenCapture = false;
-                    //    }
-                    //}
+                            this->screenCaptureData->screenShotNumber++;
+                            this->screenCaptureData->triggerScreenCapture = false;
+                        }
+                    }
 
                     this->renderWindow->Render();
                 }
@@ -340,7 +341,7 @@ public:
     vtkNew<vtkRenderWindow> renderWindow;
     vtkNew<vtkRenderWindowInteractor> renderWindowInteractor;
     std::shared_ptr<cameraConfigurationData> cameraControllerData;
-    //std::shared_ptr<screenShotData> screenCaptureData;
+    std::shared_ptr<screenShotData> screenCaptureData;
 };
 
 VTKViewer::VTKViewer() : renderer(Core::make_unique<VTKRenderer> (this))
@@ -382,13 +383,15 @@ void VTKViewer::setCameraControllerData(std::shared_ptr<cameraConfigurationData>
     renderer->cameraControllerData = camData;
 }
 
-//void VTKViewer::setScreenCaptureData(std::shared_ptr<screenShotData> data)
-//{
-//    renderer->screenCaptureData = data;
-//
-//    renderer->screenCaptureData->windowToImageFilter->SetInput(
-//        this->renderer->getRenderWindow());
-//}
+void VTKViewer::setScreenCaptureData(std::shared_ptr<screenShotData> data)
+{
+    renderer->screenCaptureData = data;
+
+    this->renderer->getRenderWindow()->SetAlphaBitPlanes(1);
+
+    renderer->screenCaptureData->windowToImageFilter->SetInput(
+        this->renderer->getRenderWindow());
+}
 
 void VTKViewer::addChartActor(vtkContextActor* chartActor, vtkContextScene* chartScene)
 {
diff --git a/VTKRendering/VTKViewer.h b/VTKRendering/VTKViewer.h
index 3aaab8345ea30935e96870c63e5bc21fa703acd5..c11a6007b1330fd9959b282b91fafeb924fef35c 100644
--- a/VTKRendering/VTKViewer.h
+++ b/VTKRendering/VTKViewer.h
@@ -95,7 +95,7 @@ public:
 	///
 	/// \brief Set the data related to screen capture
 	///
-    //void setScreenCaptureData(std::shared_ptr<screenShotData> data);
+    void setScreenCaptureData(std::shared_ptr<screenShotData> data);
 
     ///
     /// \brief Add chart actor to the renderer
diff --git a/VirtualTools/LaparoscopicCameraCoupler.cpp b/VirtualTools/LaparoscopicCameraCoupler.cpp
index 2e64a6a8fd9eaa64cde030d3231946fe93fbbe1d..cacc76c026f62661277dd9d64e1d3c1100459bc3 100644
--- a/VirtualTools/LaparoscopicCameraCoupler.cpp
+++ b/VirtualTools/LaparoscopicCameraCoupler.cpp
@@ -155,10 +155,10 @@ void LaparoscopicCameraCoupler::exec()
             this->terminate();
         }
 
-        /*if (this->inputDevice->getButton(0))
+        if (this->inputDevice->getButton(1))
         {
-        this->screenCaptureData->triggerScreenCapture = true;
-        }*/
+            this->screenCaptureData->triggerScreenCapture = true;
+        }
 
         std::this_thread::sleep_for(poolDelay);
     }
@@ -251,12 +251,12 @@ void LaparoscopicCameraCoupler::setBendingRadius(const double val)
     bendingRadius = val;
 }
 
-//std::shared_ptr<screenShotData> LaparoscopicCameraCoupler::getScreenCaptureData()
-//{
-//    return screenCaptureData;
-//}
-//
-//void LaparoscopicCameraCoupler::enableScreenCapture()
-//{
-//    this->screenCaptureData = std::make_shared<screenShotData>();
-//}
\ No newline at end of file
+std::shared_ptr<screenShotData> LaparoscopicCameraCoupler::getScreenCaptureData()
+{
+    return screenCaptureData;
+}
+
+void LaparoscopicCameraCoupler::enableScreenCapture()
+{
+    this->screenCaptureData = std::make_shared<screenShotData>();
+}
\ No newline at end of file
diff --git a/VirtualTools/LaparoscopicCameraCoupler.h b/VirtualTools/LaparoscopicCameraCoupler.h
index 850afd0d1e46d415a5ac107fec512818e3e71f10..47dfababdfa9ec2f56e46a924fcadef41b848897 100644
--- a/VirtualTools/LaparoscopicCameraCoupler.h
+++ b/VirtualTools/LaparoscopicCameraCoupler.h
@@ -37,6 +37,7 @@
 #include <vtkCamera.h>
 #include <vtkWindowToImageFilter.h>
 #include <vtkPNGWriter.h>
+#include "vtkNew.h"
 
 class DeviceInterface;
 
@@ -50,34 +51,30 @@ struct cameraConfigurationData
     ~cameraConfigurationData(){};
 };
 
-//struct screenShotData
-//{
-//    std::shared_ptr<vtkWindowToImageFilter> windowToImageFilter;
-//    std::shared_ptr<vtkPNGWriter> pngWriter;
-//    bool triggerScreenCapture;
-//    int screenShotNumber;
-//
-//    screenShotData() : triggerScreenCapture(false), screenShotNumber(0)
-//    {
-//        windowToImageFilter = std::make_shared<vtkWindowToImageFilter>();
-//
-//        windowToImageFilter->SetMagnification(1); // set the resolution of the output
-//                                                  // image
-//
-//        windowToImageFilter->SetInputBufferTypeToRGBA(); // also record the alpha
-//                                                         // (transparency) channel
-//
-//        windowToImageFilter->ReadFrontBufferOff(); // read from the back buffer
-//
-//        windowToImageFilter->Update();
-//
-//        pngWriter = std::make_shared<vtkPNGWriter>();
-//
-//        pngWriter->SetInputConnection(windowToImageFilter->GetOutputPort());
-//    };
-//
-//    ~screenShotData(){};
-//};
+struct screenShotData
+{
+    vtkNew<vtkWindowToImageFilter> windowToImageFilter;
+    vtkNew<vtkPNGWriter> pngWriter;
+    bool triggerScreenCapture;
+    int screenShotNumber;
+
+    screenShotData() : triggerScreenCapture(false), screenShotNumber(0)
+    {
+        windowToImageFilter->SetMagnification(1); // set the resolution of the output
+                                                  // image
+
+        windowToImageFilter->SetInputBufferTypeToRGB(); // also record the alpha
+                                                         // (transparency) channel
+
+        windowToImageFilter->ReadFrontBufferOff(); // read from the back buffer
+
+        windowToImageFilter->Update();
+
+        pngWriter->SetInputConnection(windowToImageFilter->GetOutputPort());
+    };
+
+    ~screenShotData(){};
+};
 
 class LaparoscopicCameraCoupler : public Module
 {
@@ -219,7 +216,7 @@ public:
 	///
 	/// \brief Get the screen capture related data
 	///
-    //std::shared_ptr<screenShotData> getScreenCaptureData();
+    std::shared_ptr<screenShotData> getScreenCaptureData();
 
 	///
 	/// \brief Initializes screen capture capability
@@ -268,7 +265,7 @@ private:
 
     std::shared_ptr<cameraConfigurationData> cameraPosOrientData;//!< camera config data
 
-    //std::shared_ptr<screenShotData> screenCaptureData;
+    std::shared_ptr<screenShotData> screenCaptureData;
 
     std::shared_ptr<vtkWindowToImageFilter> windowToImageFilter;
 };