diff --git a/src/core/core.cpp b/src/core/core.cpp
index fb9b25d12c..2683533b80 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -380,9 +380,7 @@ struct System::Impl {
             gpu_core->NotifyShutdown();
         }
 
-        kernel.ShutdownCores();
-        cpu_manager.Shutdown();
-        debugger.reset();
+        kernel.SuspendApplication(true);
         if (services) {
             services->KillNVNFlinger();
         }
@@ -398,6 +396,9 @@ struct System::Impl {
         gpu_core.reset();
         host1x_core.reset();
         perf_stats.reset();
+        kernel.ShutdownCores();
+        cpu_manager.Shutdown();
+        debugger.reset();
         kernel.Shutdown();
         memory.Reset();