diff --git a/Dalamud/Configuration/Internal/DalamudConfiguration.cs b/Dalamud/Configuration/Internal/DalamudConfiguration.cs
index f623f8007..cce922697 100644
--- a/Dalamud/Configuration/Internal/DalamudConfiguration.cs
+++ b/Dalamud/Configuration/Internal/DalamudConfiguration.cs
@@ -370,13 +370,21 @@ internal sealed class DalamudConfiguration : IServiceType
}
///
- /// Save the configuration at the path it was loaded from.
+ /// Save the configuration at the path it was loaded from, at the next frame.
///
public void QueueSave()
{
this.isSaveQueued = true;
}
+ ///
+ /// Immediately save the configuration.
+ ///
+ public void ForceSave()
+ {
+ this.Save();
+ }
+
///
/// Save the file, if needed. Only needs to be done once a frame.
///
diff --git a/Dalamud/Interface/Internal/Windows/BranchSwitcherWindow.cs b/Dalamud/Interface/Internal/Windows/BranchSwitcherWindow.cs
index e934f9df6..dd2d911ff 100644
--- a/Dalamud/Interface/Internal/Windows/BranchSwitcherWindow.cs
+++ b/Dalamud/Interface/Internal/Windows/BranchSwitcherWindow.cs
@@ -103,6 +103,9 @@ public class BranchSwitcherWindow : Window
{
Pick();
+ // If we exit immediately, we need to write out the new config now
+ Service.Get().ForceSave();
+
var appData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
var xlPath = Path.Combine(appData, "XIVLauncher", "XIVLauncher.exe");