diff --git a/src/module/qt_window/mainwindow.cc b/src/module/qt_window/mainwindow.cc
index 29c1aa38e2b0a65be420fe49bb7cf42ef742d8db..05d0a88e3ea0ac738590887eb32c18a758cd6b1c 100644
--- a/src/module/qt_window/mainwindow.cc
+++ b/src/module/qt_window/mainwindow.cc
@@ -8,7 +8,7 @@ MainWindow::MainWindow(struct module_qt_window_s *qt_window, QWidget *parent)
     setCentralWidget(qt_window->mpv_widget);
     setFocusPolicy(Qt::StrongFocus);
 
-    connect(this, &MainWindow::emitCloseMpv, this, &MainWindow::__closeMpv, Qt::QueuedConnection);
+    connect(this, &MainWindow::emitCloseMpv, this, &MainWindow::__closeMpv, Qt::BlockingQueuedConnection);
 }
 
 void MainWindow::closeMpv(bool* exited) noexcept {
diff --git a/src/module/qt_window/mpvwidget_interface.cc b/src/module/qt_window/mpvwidget_interface.cc
index 2cea80bd12cef74e1a3bd4d68de78d6574e3774f..aba2f6c1facc6ae9457bb15e831e87cacf248151 100644
--- a/src/module/qt_window/mpvwidget_interface.cc
+++ b/src/module/qt_window/mpvwidget_interface.cc
@@ -67,8 +67,6 @@ ___module_qt_window_close(struct module_qt_window_s *win)
 {
     bool exited = false;
     win->main_window->closeMpv(&exited);
-    while (!exited)
-        sleep(1);
     delete win->main_window;
     return true;
 }