diff --git a/src/core/host_interface.cpp b/src/core/host_interface.cpp
index f05c01240..45019e139 100644
--- a/src/core/host_interface.cpp
+++ b/src/core/host_interface.cpp
@@ -133,6 +133,7 @@ void HostInterface::ResetSystem()
 {
   System::Reset();
   System::ResetPerformanceCounters();
+  System::ResetThrottler();
   AddOSDMessage(TranslateStdString("OSDMessage", "System reset."));
 }
 
@@ -149,7 +150,10 @@ void HostInterface::PauseSystem(bool paused)
   OnSystemPaused(paused);
 
   if (!paused)
+  {
     System::ResetPerformanceCounters();
+    System::ResetThrottler();
+  }
 }
 
 void HostInterface::DestroySystem()
@@ -424,6 +428,7 @@ bool HostInterface::LoadState(const char* filename)
   }
 
   System::ResetPerformanceCounters();
+  System::ResetThrottler();
   return true;
 }
 
@@ -1174,6 +1179,7 @@ void HostInterface::RecreateSystem()
   }
 
   System::ResetPerformanceCounters();
+  System::ResetThrottler();
 }
 
 void HostInterface::SetMouseMode(bool relative, bool hide_cursor) {}
diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp
index f0e178346..4f0a85d36 100644
--- a/src/frontend-common/common_host_interface.cpp
+++ b/src/frontend-common/common_host_interface.cpp
@@ -845,7 +845,7 @@ void CommonHostInterface::UpdateSpeedLimiterState()
   if (System::IsValid())
   {
     System::SetTargetSpeed(target_speed);
-    System::ResetPerformanceCounters();
+    System::ResetThrottler();
   }
 
   if (m_audio_stream)
@@ -1994,6 +1994,7 @@ void CommonHostInterface::RegisterGeneralHotkeys()
                        if (!ConfirmMessage(confirmation_message))
                        {
                          System::ResetPerformanceCounters();
+                         System::ResetThrottler();
                          return;
                        }
                      }