Index: AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties	(revision 621)
+++ AE/installer2/src/net/oni2/aeinstaller/AEInstaller.properties	(revision 622)
@@ -1,4 +1,4 @@
 appname=AE Installer 2
-appversion=0.81
+appversion=0.82
 
 invalidPath.title=Wrong directory
Index: AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java	(revision 621)
+++ AE/installer2/src/net/oni2/aeinstaller/backend/mods/Mod.java	(revision 622)
@@ -55,5 +55,5 @@
 			Type t = ModManager.getInstance().getTypeByName(tt.getName());
 			types.add(t);
-			if (!nm.isTool() && isValidOnPlatform())
+			if (!nm.isTool() && !isMandatoryMod() && isValidOnPlatform())
 				t.addEntry(this);
 		}
Index: AE/installer2/src/net/oni2/aeinstaller/backend/unpack/Unpacker.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/backend/unpack/Unpacker.java	(revision 621)
+++ AE/installer2/src/net/oni2/aeinstaller/backend/unpack/Unpacker.java	(revision 622)
@@ -119,5 +119,9 @@
 
 						zf = new ZipFile(zip);
+						
+						if (target.exists())
+							FileUtils.deleteDirectory(target);
 						target.mkdirs();
+
 						for (Enumeration<? extends ZipEntry> e = zf.entries(); e
 								.hasMoreElements();) {
Index: AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java
===================================================================
--- AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 621)
+++ AE/installer2/src/net/oni2/aeinstaller/gui/MainWin.java	(revision 622)
@@ -294,18 +294,19 @@
 					strTools += " - " + m.getName();
 				}
-				String message = "<html>";
-				message += String.format(
-						bundle.getString("updatesAvailable.text"), strMods,
-						strTools, SizeFormatter.format(size, 3));
-				message += "</html>";
-				int res = JOptionPane
-						.showConfirmDialog(this, message,
-								bundle.getString("updatesAvailable.title"),
-								JOptionPane.YES_NO_OPTION,
-								JOptionPane.QUESTION_MESSAGE);
-				if (res == JOptionPane.YES_OPTION) {
-					execUpdates = new TreeSet<Mod>();
-					execUpdates.addAll(mods);
-					execUpdates.addAll(tools);
+				if (size > 0) {
+					String message = "<html>";
+					message += String.format(
+							bundle.getString("updatesAvailable.text"), strMods,
+							strTools, SizeFormatter.format(size, 3));
+					message += "</html>";
+					int res = JOptionPane.showConfirmDialog(this, message,
+							bundle.getString("updatesAvailable.title"),
+							JOptionPane.YES_NO_OPTION,
+							JOptionPane.QUESTION_MESSAGE);
+					if (res == JOptionPane.YES_OPTION) {
+						execUpdates = new TreeSet<Mod>();
+						execUpdates.addAll(mods);
+						execUpdates.addAll(tools);
+					}
 				}
 			}
