diff --git a/Core/Other/Settings/Dialogs/DialogSettingsManage.cs b/Core/Other/Settings/Dialogs/DialogSettingsManage.cs
index 0b258fce..1003bb65 100644
--- a/Core/Other/Settings/Dialogs/DialogSettingsManage.cs
+++ b/Core/Other/Settings/Dialogs/DialogSettingsManage.cs
@@ -16,7 +16,7 @@ public ExportFileFlags Flags{
 
             set{
                 // this will call events and SetFlag, which also updates the UI
-                cbConfig.Checked = value.HasFlag(ExportFileFlags.Config);
+                cbConfig.Checked = value.HasFlag(ExportFileFlags.UserConfig);
                 cbSession.Checked = value.HasFlag(ExportFileFlags.Session);
                 cbPluginData.Checked = value.HasFlag(ExportFileFlags.PluginData);
             }
@@ -42,7 +42,7 @@ private void radioDecision_CheckedChanged(object sender, EventArgs e){
         }
 
         private void cbConfig_CheckedChanged(object sender, EventArgs e){
-            SetFlag(ExportFileFlags.Config, cbConfig.Checked);
+            SetFlag(ExportFileFlags.UserConfig, cbConfig.Checked);
         }
 
         private void cbSession_CheckedChanged(object sender, EventArgs e){
@@ -63,7 +63,7 @@ private void btnContinue_Click(object sender, EventArgs e){
                         currentState = State.Reset;
 
                         Text = "Restore Defaults";
-                        Flags = ExportFileFlags.Config;
+                        Flags = ExportFileFlags.UserConfig;
                     }
 
                     // Import
@@ -108,10 +108,18 @@ private void btnContinue_Click(object sender, EventArgs e){
 
                 case State.Reset:
                     if (FormMessage.Warning("Reset TweetDuck Options", "This will reset the selected items. Are you sure you want to proceed?", FormMessage.Yes, FormMessage.No)){
-                        if (Flags.HasFlag(ExportFileFlags.Config)){
+                        if (Flags.HasFlag(ExportFileFlags.UserConfig)){
                             Program.ResetConfig();
                         }
 
+                        if (Flags.HasFlag(ExportFileFlags.SystemConfig)){
+                            try{
+                                File.Delete(Program.SystemConfigFilePath);
+                            }catch(Exception ex){
+                                Program.Reporter.HandleException("System Config Reset Error", "Could not delete system config.", true, ex);
+                            }
+                        }
+
                         if (Flags.HasFlag(ExportFileFlags.PluginData)){
                             try{
                                 File.Delete(Program.PluginConfigFilePath);
@@ -124,6 +132,9 @@ private void btnContinue_Click(object sender, EventArgs e){
                         if (Flags.HasFlag(ExportFileFlags.Session)){
                             Program.Restart(Arguments.ArgDeleteCookies);
                         }
+                        else if (Flags.HasFlag(ExportFileFlags.SystemConfig)){
+                            Program.Restart();
+                        }
                         else{
                             ShouldReloadBrowser = true;
                         }
@@ -139,7 +150,12 @@ private void btnContinue_Click(object sender, EventArgs e){
                         Program.UserConfig.Reload();
 
                         if (importManager.IsRestarting){
-                            Program.Restart(Arguments.ArgImportCookies);
+                            if (Flags.HasFlag(ExportFileFlags.Session)){
+                                Program.Restart(Arguments.ArgImportCookies);
+                            }
+                            else if (Flags.HasFlag(ExportFileFlags.SystemConfig)){
+                                Program.Restart();
+                            }
                         }
                         else{
                             ShouldReloadBrowser = true;
@@ -171,6 +187,8 @@ private void btnContinue_Click(object sender, EventArgs e){
                     }
 
                     Program.UserConfig.Save();
+                    Program.SystemConfig.Save();
+
                     ExportManager manager = new ExportManager(file, plugins);
 
                     if (!manager.Export(Flags)){
diff --git a/Core/Other/Settings/Export/ExportFileFlags.cs b/Core/Other/Settings/Export/ExportFileFlags.cs
index 6bc283cf..7b721364 100644
--- a/Core/Other/Settings/Export/ExportFileFlags.cs
+++ b/Core/Other/Settings/Export/ExportFileFlags.cs
@@ -4,9 +4,10 @@ namespace TweetDuck.Core.Other.Settings.Export{
     [Flags]
     enum ExportFileFlags{
         None = 0,
-        Config = 1,
-        Session = 2,
-        PluginData = 4,
-        All = Config|Session|PluginData
+        UserConfig = 1,
+        SystemConfig = 2,
+        Session = 4,
+        PluginData = 8,
+        All = UserConfig|SystemConfig|Session|PluginData
     }
 }
diff --git a/Core/Other/Settings/Export/ExportManager.cs b/Core/Other/Settings/Export/ExportManager.cs
index 4a4633c0..74eb95d0 100644
--- a/Core/Other/Settings/Export/ExportManager.cs
+++ b/Core/Other/Settings/Export/ExportManager.cs
@@ -25,10 +25,14 @@ public ExportManager(string file, PluginManager plugins){
         public bool Export(ExportFileFlags flags){
             try{
                 using(CombinedFileStream stream = new CombinedFileStream(new FileStream(file, FileMode.Create, FileAccess.Write, FileShare.None))){
-                    if (flags.HasFlag(ExportFileFlags.Config)){
+                    if (flags.HasFlag(ExportFileFlags.UserConfig)){
                         stream.WriteFile("config", Program.UserConfigFilePath);
                     }
 
+                    if (flags.HasFlag(ExportFileFlags.SystemConfig)){
+                        stream.WriteFile("system", Program.SystemConfigFilePath);
+                    }
+
                     if (flags.HasFlag(ExportFileFlags.PluginData)){
                         stream.WriteFile("plugin.config", Program.PluginConfigFilePath);
 
@@ -67,7 +71,11 @@ public ExportFileFlags GetImportFlags(){
                     while((key = stream.SkipFile()) != null){
                         switch(key){
                             case "config":
-                                flags |= ExportFileFlags.Config;
+                                flags |= ExportFileFlags.UserConfig;
+                                break;
+
+                            case "system":
+                                flags |= ExportFileFlags.SystemConfig;
                                 break;
 
                             case "plugin.config":
@@ -99,12 +107,20 @@ public bool Import(ExportFileFlags flags){
                     while((entry = stream.ReadFile()) != null){
                         switch(entry.KeyName){
                             case "config":
-                                if (flags.HasFlag(ExportFileFlags.Config)){
+                                if (flags.HasFlag(ExportFileFlags.UserConfig)){
                                     entry.WriteToFile(Program.UserConfigFilePath);
                                 }
 
                                 break;
 
+                            case "system":
+                                if (flags.HasFlag(ExportFileFlags.SystemConfig)){
+                                    entry.WriteToFile(Program.SystemConfigFilePath);
+                                    IsRestarting = true;
+                                }
+
+                                break;
+
                             case "plugin.config":
                                 if (flags.HasFlag(ExportFileFlags.PluginData)){
                                     entry.WriteToFile(Program.PluginConfigFilePath);