diff --git a/src/citra/citra.cpp b/src/citra/citra.cpp
index f6a52758b4..69f0b35b35 100644
--- a/src/citra/citra.cpp
+++ b/src/citra/citra.cpp
@@ -51,6 +51,8 @@ int __cdecl main(int argc, char **argv) {
         Core::RunLoop();
     }
 
+    System::Shutdown();
+
     delete emu_window;
 
     return 0;
diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp
index 6d08d6afc5..e753ea108c 100644
--- a/src/citra_qt/bootmanager.cpp
+++ b/src/citra_qt/bootmanager.cpp
@@ -13,6 +13,7 @@
 
 #include "core/core.h"
 #include "core/settings.h"
+#include "core/system.h"
 
 #include "video_core/debug_utils/debug_utils.h"
 
@@ -89,6 +90,8 @@ void EmuThread::Stop()
         }
     }
     LOG_INFO(Frontend, "EmuThread stopped");
+
+    System::Shutdown();
 }