diff --git a/Source/Fractorium/FinalRenderDialog.cpp b/Source/Fractorium/FinalRenderDialog.cpp
index 0985bfe..ae629e6 100644
--- a/Source/Fractorium/FinalRenderDialog.cpp
+++ b/Source/Fractorium/FinalRenderDialog.cpp
@@ -636,7 +636,10 @@ void FractoriumFinalRenderDialog::OnCancelRenderClicked(bool checked)
/// The event
void FractoriumFinalRenderDialog::showEvent(QShowEvent* e)
{
- if (CreateControllerFromGUI(true))
+ if (m_Controller.get() && m_Controller->m_Run)
+ return;
+
+ if (CreateControllerFromGUI(true))//Create controller if it does not exist, or if it does and the renderer is not running.
{
int index = int(m_Fractorium->m_Controller->Index()) + 1;
#ifdef DO_DOUBLE
diff --git a/Source/Fractorium/FinalRenderEmberController.cpp b/Source/Fractorium/FinalRenderEmberController.cpp
index a936360..ad932fc 100644
--- a/Source/Fractorium/FinalRenderEmberController.cpp
+++ b/Source/Fractorium/FinalRenderEmberController.cpp
@@ -38,7 +38,7 @@ void FinalRenderEmberController::CancelRender()
m_Renderer->Abort();
while (m_Renderer->InRender())
- QApplication::processEvents();
+ std::this_thread::sleep_for(std::chrono::milliseconds(10));
m_Renderer->EnterRender();
m_Renderer->EnterFinalAccum();