Index: java/installer2/src/net/oni2/aeinstaller/gui/MainWin.java
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 773)
+++ java/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 804)
@@ -50,5 +50,6 @@
 import net.oni2.aeinstaller.backend.oni.management.InstallProgressListener;
 import net.oni2.aeinstaller.backend.oni.management.Installer;
-import net.oni2.aeinstaller.backend.oni.management.ToolsManager;
+import net.oni2.aeinstaller.backend.oni.management.tools.ToolInstallationList;
+import net.oni2.aeinstaller.backend.oni.management.tools.ToolsManager;
 import net.oni2.aeinstaller.backend.packages.Package;
 import net.oni2.aeinstaller.backend.packages.PackageManager;
@@ -358,12 +359,12 @@
 				dl.setVisible(true);
 				if (dl.isFinished()) {
-					TreeSet<Integer> installed = ToolsManager
-							.getInstalledTools();
+					ToolInstallationList til = ToolInstallationList
+							.getInstance();
 					TreeSet<Package> tools = new TreeSet<Package>();
 					for (Package m : execUpdates)
-						if (m.isTool()
-								&& installed.contains(m.getPackageNumber()))
+						if (m.isTool() && til.isInstalled(m.getPackageNumber()))
 							tools.add(m);
 					if (tools.size() > 0) {
+						ToolsManager.installTools(tools, true);
 						ToolsManager.installTools(tools, false);
 					}
@@ -548,7 +549,9 @@
 	private void checkCorePackages() {
 		if (!SettingsManager.getInstance().isOfflineMode()) {
+			TreeSet<Package> tools = new TreeSet<Package>();
 			for (Package m : PackageManager.getInstance().getCoreTools()) {
 				if (m.isNewerAvailable()) {
 					execCoreUpdates.add(m);
+					tools.add(m);
 				}
 			}
@@ -566,7 +569,13 @@
 				}
 			}
-			ToolsManager.installTools(PackageManager.getInstance()
-					.getCoreTools(), false);
-		}
+
+			ToolsManager.installTools(tools, true);
+			ToolsManager.installTools(tools, false);
+		}
+		ToolsManager.verifyToolsIntegrity();
+		if (ToolInstallationList.getInstance().getModifiedTools().size() > 0)
+			System.out.println("Locally modified tools: "
+					+ ToolInstallationList.getInstance().getModifiedTools()
+							.toString());
 	}
 
Index: java/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.java
===================================================================
--- java/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.java	(revision 773)
+++ java/installer2/src/net/oni2/aeinstaller/gui/toolmanager/ToolManager.java	(revision 804)
@@ -18,5 +18,5 @@
 
 import net.oni2.SettingsManager;
-import net.oni2.aeinstaller.backend.oni.management.ToolsManager;
+import net.oni2.aeinstaller.backend.oni.management.tools.ToolsManager;
 import net.oni2.aeinstaller.backend.packages.Package;
 import net.oni2.aeinstaller.gui.downloadwindow.Downloader;
