Fixed calling DestroyContext() always saving .ini data with the current context instead of the supplied context pointer. (#2066)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 91c5b5d..b2c6a20 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -33,6 +33,11 @@
  VERSION 1.66 (In Progress)
 -----------------------------------------------------------------------
 
+Other Changes:
+
+- Fixed calling DestroyContext() always saving .ini data with the current context instead
+  of the supplied context pointer. (#2066)
+  
 
 -----------------------------------------------------------------------
  VERSION 1.65 (Released 2018-09-06)
diff --git a/imgui.cpp b/imgui.cpp
index f14dfc5..f5f19df 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -3281,7 +3281,12 @@
 
     // Save settings (unless we haven't attempted to load them: CreateContext/DestroyContext without a call to NewFrame shouldn't save an empty file)
     if (g.SettingsLoaded && g.IO.IniFilename != NULL)
+    {
+        ImGuiContext* backup_context = GImGui;
+        SetCurrentContext(context);
         SaveIniSettingsToDisk(g.IO.IniFilename);
+        SetCurrentContext(backup_context);
+    }
 
     // Clear everything else
     for (int i = 0; i < g.Windows.Size; i++)