diff --git a/src/app/GUI/RenderWidgets/renderwidget.cpp b/src/app/GUI/RenderWidgets/renderwidget.cpp
index 67106afa4..99e73248f 100644
--- a/src/app/GUI/RenderWidgets/renderwidget.cpp
+++ b/src/app/GUI/RenderWidgets/renderwidget.cpp
@@ -299,6 +299,17 @@ void RenderWidget::render(RenderInstanceSettings &settings)
     mRenderProgressBar->setValue(renderSettings.fMinFrame);
     handleRenderState(RenderState::waiting);
     mCurrentRenderedSettings = &settings;
+
+    // the scene we want to render MUST be current if multiple scenes are in queue
+    const auto scene = mCurrentRenderedSettings->getTargetCanvas();
+    if (scene) {
+        const auto handler = MainWindow::sGetInstance()->getLayoutHandler();
+        const int index = handler->getSceneId(scene);
+        if (index > -1 && !handler->isCurrentScene(index)) {
+            handler->setCurrentScene(index);
+        }
+    }
+
     RenderHandler::sInstance->renderFromSettings(&settings);
     connect(&settings, &RenderInstanceSettings::renderFrameChanged,
             this, &RenderWidget::setRenderedFrame);
diff --git a/src/app/GUI/layouthandler.h b/src/app/GUI/layouthandler.h
index 2eb147f2e..ba8f67c54 100644
--- a/src/app/GUI/layouthandler.h
+++ b/src/app/GUI/layouthandler.h
@@ -186,6 +186,10 @@ class LayoutHandler : public QObject {
                                                  mNumberLayouts - nCLays + relCurrentId;
         setCurrent(absId);
     }
+    int getSceneId(const Canvas* const scene) { return sceneId(scene); };
+    bool isCurrentScene(const int index) { return index == mCurrentId; };
+    void setCurrentScene(const int index) { setCurrent(index); };
+
 private:
     void rename(const int id, const QString& newName) {
         auto& layout = mLayouts[uint(id)];
diff --git a/src/app/GUI/mainwindow.cpp b/src/app/GUI/mainwindow.cpp
index 47b97b8c4..e12ac15da 100644
--- a/src/app/GUI/mainwindow.cpp
+++ b/src/app/GUI/mainwindow.cpp
@@ -2148,6 +2148,11 @@ void MainWindow::cmdAddAction(QAction *act)
     eSettings::sInstance->fCommandPalette.append(act);
 }
 
+LayoutHandler *MainWindow::getLayoutHandler()
+{
+    return mLayoutHandler;
+}
+
 stdsptr<void> MainWindow::lock()
 {
     if (mLock) { return mLock->ref<Lock>(); }
diff --git a/src/app/GUI/mainwindow.h b/src/app/GUI/mainwindow.h
index 8c3141bb3..4570ac14e 100644
--- a/src/app/GUI/mainwindow.h
+++ b/src/app/GUI/mainwindow.h
@@ -193,6 +193,7 @@ class MainWindow : public QMainWindow
     void updateAutoSaveBackupState();
     void openRendererWindow();
     void cmdAddAction(QAction *act);
+    LayoutHandler* getLayoutHandler();
 
 protected:
     void lockFinished();