diff --git a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp
index 6a1176106f..9066dddb14 100644
--- a/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp
+++ b/Examples/Plugins/org.mitk.example.gui.opencv/src/internal/SimpleOpenCVExample.cpp
@@ -1,215 +1,215 @@
 /*===================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center,
 Division of Medical and Biological Informatics.
 All rights reserved.
 
 This software is distributed WITHOUT ANY WARRANTY; without
 even the implied warranty of MERCHANTABILITY or FITNESS FOR
 A PARTICULAR PURPOSE.
 
 See LICENSE.txt or http://www.mitk.org for details.
 
 ===================================================================*/
 
 // Blueberry
 #include <berryISelectionService.h>
 #include <berryIWorkbenchWindow.h>
 
 // Qmitk
 #include "SimpleOpenCVExample.h"
 
 // mitk image
 #include <QTimer>
 #include <mitkIRenderingManager.h>
 #include <mitkImage.h>
 
 #include <opencv2/core/core.hpp>
 #include <opencv2/highgui/highgui.hpp>
 
 const std::string SimpleOpenCVExample::VIEW_ID = "org.mitk.views.simpleopencvexample";
 
 void SimpleOpenCVExample::SetFocus() {}
 
 void SimpleOpenCVExample::CreateQtPartControl(QWidget *parent)
 {
   // create GUI widgets from the Qt Designer's .ui file
   m_Controls.setupUi(parent);
 
   connect(m_Controls.m_StartGrabbing, SIGNAL(clicked()), this, SLOT(OnStartGrabbing()));
   connect(m_UpdateTimer, SIGNAL(timeout()), this, SLOT(OnUpdateImage()));
 }
 
 SimpleOpenCVExample::SimpleOpenCVExample() : m_running(false), m_UpdateTimer(new QTimer()) {}
 
 SimpleOpenCVExample::~SimpleOpenCVExample() {}
 
 void SimpleOpenCVExample::OnStartGrabbing()
 {
   if (!m_running)
   {
     grabbedFrames = 0;
     grabbingStart = std::chrono::system_clock::now().time_since_epoch();
     m_running = true;
     m_Controls.m_StartGrabbing->setText("Stop Video Grabbing");
     m_VideoCapture = new cv::VideoCapture(); // open the default camera
     m_VideoCapture->open(m_Controls.m_InputID->value());
 
     if (!m_VideoCapture->isOpened())
     {
       return;
     } // check if we succeeded
 
     if (m_Controls.m_enableResolution->isChecked())
     {
       m_VideoCapture->set(CV_CAP_PROP_FRAME_WIDTH, m_Controls.m_resX->value());
       m_VideoCapture->set(CV_CAP_PROP_FRAME_HEIGHT, m_Controls.m_resY->value());
     }
 
     if (m_Controls.m_secondStream->isChecked())
     {
       m_VideoCapture2 = cv::VideoCapture();
       m_VideoCapture2.open(m_Controls.m_InputID_2->value());
     }
 
     int millisPerFrame = 1000.0 / m_Controls.m_UpdateRate->value();
     int fps = m_Controls.m_UpdateRate->value();
 
     if (m_Controls.m_writeFile->isChecked())
     {
       m_ImageCollection1 = std::vector<cv::Mat>();
 
       if (m_Controls.m_secondStream->isChecked())
       {
         m_ImageCollection2 = std::vector<cv::Mat>();
       }
     }
 
     if (m_Controls.m_SeparateWindow->isChecked())
     {
       cv::namedWindow("Video", 1);
       if (m_Controls.m_secondStream->isChecked())
         cv::namedWindow("Video2", 1);
     }
     else if (m_Controls.m_MITKImage->isChecked())
     {
       mitk::DataNode::Pointer imageNode = mitk::DataNode::New();
       imageNode->SetName("Open CV Example Image Stream");
       imageNode->SetData(mitk::Image::New());
       m_conversionFilter = mitk::OpenCVToMitkImageFilter::New();
       this->GetDataStorage()->Add(imageNode);
       OnUpdateImage();
 
       // Initialize view on Image
       mitk::IRenderWindowPart *renderWindow = this->GetRenderWindowPart();
       if (renderWindow != NULL)
         renderWindow->GetRenderingManager()->InitializeViews(
           imageNode->GetData()->GetGeometry(), mitk::RenderingManager::REQUEST_UPDATE_2DWINDOWS, true);
     }
 
     // Start timer for update loop
     m_UpdateTimer->setTimerType(Qt::PreciseTimer);
     m_UpdateTimer->setInterval(millisPerFrame);
     m_UpdateTimer->start();
   }
   else
   {
-    grabbingEnd = std::chrono::system_clock::now().time_since_epoch();
     m_UpdateTimer->stop();
 
     auto grabbedMillis = std::chrono::duration_cast<std::chrono::milliseconds>(grabbingEnd).count() -
                          std::chrono::duration_cast<std::chrono::milliseconds>(grabbingStart).count();
     MITK_INFO << "Grabbed " << grabbedFrames << " frames in " << grabbedMillis << " ms";
     double fps = grabbedFrames / (grabbedMillis / 1000);
     m_reachedFPS = fps;
 
     if (m_Controls.m_writeFile->isChecked())
     {
       cv::Size S = cv::Size((int)m_VideoCapture->get(CV_CAP_PROP_FRAME_WIDTH), // Acquire input size
                             (int)m_VideoCapture->get(CV_CAP_PROP_FRAME_HEIGHT));
       std::string name = m_Controls.m_firstFile->text().toStdString();
       m_outputVideo1 = cv::VideoWriter();
       m_outputVideo1.open(name, cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), fps, S, true);
 
       if (m_Controls.m_secondStream->isChecked())
       {
-        cv::Size S = cv::Size((int)m_VideoCapture->get(CV_CAP_PROP_FRAME_WIDTH), // Acquire input size
-                              (int)m_VideoCapture->get(CV_CAP_PROP_FRAME_HEIGHT));
+        cv::Size S = cv::Size((int)m_VideoCapture2.get(CV_CAP_PROP_FRAME_WIDTH), // Acquire input size
+                              (int)m_VideoCapture2.get(CV_CAP_PROP_FRAME_HEIGHT));
         m_outputVideo2 = cv::VideoWriter();
         m_outputVideo2.open(
           m_Controls.m_secondFile->text().toStdString(), cv::VideoWriter::fourcc('M', 'J', 'P', 'G'), fps, S, true);
       }
     }
     MITK_INFO << "Reached framerate (frames per second): " << fps;
 
     if (m_Controls.m_writeFile->isChecked())
     {
       for (cv::Mat frame1 : m_ImageCollection1) m_outputVideo1.write(frame1);
       MITK_INFO << "Saved file 1 to " << m_Controls.m_firstFile->text().toStdString();
       if (m_Controls.m_secondStream->isChecked())
       {
         for (cv::Mat frame2 : m_ImageCollection2) m_outputVideo2.write(frame2);
         MITK_INFO << "Saved file 2 to " << m_Controls.m_secondFile->text().toStdString();
       }
     }
     m_ImageCollection1.clear();
     m_ImageCollection2.clear();
     m_outputVideo1 = cv::VideoWriter();
     m_outputVideo2 = cv::VideoWriter();
     m_running = false;
     m_Controls.m_StartGrabbing->setText("Start Video Grabbing");
     cv::destroyWindow("Video");
     cv::destroyWindow("Video2");
     mitk::DataNode::Pointer imageNode = this->GetDataStorage()->GetNamedNode("Open CV Example Image Stream");
     this->GetDataStorage()->Remove(imageNode);
     m_VideoCapture->release();
     delete m_VideoCapture;
     
   }
 }
 
 void SimpleOpenCVExample::OnUpdateImage()
 {
   grabbedFrames++;
   if (m_Controls.m_MITKImage->isChecked())
     updateMITKImage();
   else
     updateOpenCVWindow();
+  grabbingEnd = std::chrono::system_clock::now().time_since_epoch();
 }
 
 void SimpleOpenCVExample::updateMITKImage()
 {
   cv::Mat image;
   *m_VideoCapture >> image;
   IplImage ipl_img = image;
   m_conversionFilter->SetOpenCVImage(&ipl_img);
   m_conversionFilter->Update();
   this->GetDataStorage()->GetNamedNode("Open CV Example Image Stream")->SetData(m_conversionFilter->GetOutput());
   this->RequestRenderWindowUpdate(mitk::RenderingManager::REQUEST_UPDATE_ALL);
 }
 
 void SimpleOpenCVExample::updateOpenCVWindow()
 {
   cv::Mat frame;
   *m_VideoCapture >> frame; // get a new frame from camera
   m_ImageCollection1.push_back(frame);
   if (m_Controls.m_ShowImages->isChecked())
     imshow("Video", frame);
 
   if (m_Controls.m_secondStream->isChecked())
   {
     cv::Mat frame2;
     m_VideoCapture2 >> frame2;
 
     if (m_Controls.m_ShowImages->isChecked())
       imshow("Video2", frame2);
     if (m_Controls.m_writeFile->isChecked())
       m_ImageCollection2.push_back(frame2);
     // m_outputVideo2.write(frame2);
   }
 
   //if (m_Controls.m_writeFile->isChecked())
   // m_outputVideo1.write(frame);
 }