Index: branches/eraser6/6.0/Eraser/SettingsPanel.cs
===================================================================
--- branches/eraser6/6.0/Eraser/SettingsPanel.cs	(revision 1445)
+++ branches/eraser6/6.0/Eraser/SettingsPanel.cs	(revision 1447)
@@ -353,6 +353,9 @@
 				if (!pluginApprovals.ContainsKey(guid))
 				{
-					pluginApprovals.Add(guid, item.Checked);
-					pluginApprovalsChanged = true;
+					if (plugin.Plugin.Loaded != item.Checked)
+					{
+						pluginApprovals.Add(guid, item.Checked);
+						pluginApprovalsChanged = true;
+					}
 				}
 				else if (pluginApprovals[guid] != item.Checked)
Index: branches/eraser6/6.0/Eraser.Manager/Plugins.cs
===================================================================
--- branches/eraser6/6.0/Eraser.Manager/Plugins.cs	(revision 1445)
+++ branches/eraser6/6.0/Eraser.Manager/Plugins.cs	(revision 1447)
@@ -349,7 +349,16 @@
 
 		/// <summary>
-		/// Gets the IPlugin interface which the plugin exposed.
+		/// Gets the IPlugin interface which the plugin exposed. This may be null
+		/// if the plugin was not loaded.
 		/// </summary>
 		public IPlugin Plugin { get; internal set; }
+
+		/// <summary>
+		/// Gets whether this particular plugin is currently loaded in memory.
+		/// </summary>
+		public bool Loaded
+		{
+			get { return Plugin != null; }
+		}
 
 		private Assembly assembly;
