diff --git a/android/app/src/cpp/android_host_interface.cpp b/android/app/src/cpp/android_host_interface.cpp
index f422ff3be..666b0f2f6 100644
--- a/android/app/src/cpp/android_host_interface.cpp
+++ b/android/app/src/cpp/android_host_interface.cpp
@@ -822,6 +822,7 @@ bool AndroidHostInterface::ApplyInputProfile(const char* profile_name)
 
   Assert(!IsEmulationThreadRunning() || IsEmulationThreadPaused());
   CommonHostInterface::ApplyInputProfile(path.c_str(), m_settings_interface);
+  ApplySettings(false);
   return true;
 }
 
diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp
index 094cc8a43..5ec81811d 100644
--- a/src/duckstation-qt/qthostinterface.cpp
+++ b/src/duckstation-qt/qthostinterface.cpp
@@ -767,8 +767,17 @@ void QtHostInterface::applyInputProfile(const QString& profile_path)
     return;
   }
 
-  std::lock_guard<std::recursive_mutex> lock(m_settings_mutex);
-  ApplyInputProfile(profile_path.toUtf8().data(), *m_settings_interface.get());
+  Settings old_settings(std::move(g_settings));
+  {
+    std::lock_guard<std::recursive_mutex> lock(m_settings_mutex);
+    CommonHostInterface::ApplyInputProfile(profile_path.toUtf8().data(), *m_settings_interface.get());
+    CommonHostInterface::LoadSettings(*m_settings_interface.get());
+    CommonHostInterface::ApplyGameSettings(false);
+    CommonHostInterface::FixIncompatibleSettings(false);
+  }
+
+  CheckForSettingsChanges(old_settings);
+
   emit inputProfileLoaded();
 }
 
diff --git a/src/frontend-common/common_host_interface.cpp b/src/frontend-common/common_host_interface.cpp
index 7696ffe68..8d28a7a01 100644
--- a/src/frontend-common/common_host_interface.cpp
+++ b/src/frontend-common/common_host_interface.cpp
@@ -1880,11 +1880,6 @@ void CommonHostInterface::ApplyInputProfile(const char* profile_path, SettingsIn
     }
   }
 
-  if (System::IsValid())
-    System::UpdateControllers();
-
-  UpdateInputMap(si);
-
   ReportFormattedMessage(TranslateString("OSDMessage", "Loaded input profile from '%s'"), profile_path);
 }