Index: /AE/Installer/trunk/source/aeinstallerapp.cpp
===================================================================
--- /AE/Installer/trunk/source/aeinstallerapp.cpp	(revision 422)
+++ /AE/Installer/trunk/source/aeinstallerapp.cpp	(revision 423)
@@ -157,9 +157,8 @@
 		else
 		{
-			TheWindow->InstallButton->Disable();
-			TheWindow->ReglobalizeButton->Disable();
+
 
 #ifdef WIN32
-			boost::thread thrd3(globalizeData);
+			boost::thread thrd3(globalize2);
 		//globalizeData();
 		//boost::thread::create_thread(&globalizeData);
@@ -167,9 +166,12 @@
 		// Tg.create_thread( &globalizeData(), this );
 #else
+						TheWindow->InstallButton->Disable();
+			TheWindow->ReglobalizeButton->Disable();
 			globalizeData();
+						TheWindow->InstallButton->Enable();
+			TheWindow->ReglobalizeButton->Enable();
 #endif
 		
-			TheWindow->InstallButton->Enable();
-			TheWindow->ReglobalizeButton->Enable();
+
 		}
 	}
Index: /AE/Installer/trunk/source/aeinstallerapp.h
===================================================================
--- /AE/Installer/trunk/source/aeinstallerapp.h	(revision 422)
+++ /AE/Installer/trunk/source/aeinstallerapp.h	(revision 423)
@@ -83,3 +83,4 @@
     // _AEINSTALLERAPP_H_
 int globalizeData(void);
+void globalize2(void);
 MainWindow* TheWindow;
Index: /AE/Installer/trunk/source/main_window.cpp
===================================================================
--- /AE/Installer/trunk/source/main_window.cpp	(revision 422)
+++ /AE/Installer/trunk/source/main_window.cpp	(revision 423)
@@ -363,7 +363,7 @@
 		setProgressBar( 1000 );
 
-		if(!exists("../persist.dat"))
+		if(exists("../../persist.dat")) if(!exists("../persist.dat")) 
 			copy("../../persist.dat","..");
-		if(!exists("../key_config.txt"))
+		if(exists("../../key_config.txt"))if(!exists("../key_config.txt"))
 			copy("../../key_config.txt",".."); 
 		
@@ -546,5 +546,5 @@
 
 void recompileAll(vector<string> installedMods)
-{
+{try {
 	busy = 1;
 	using namespace boost::gregorian;
@@ -552,8 +552,5 @@
 	using boost::lexical_cast;
 	using boost::bad_lexical_cast;
-	
-	setStatusArea("Importing levels...");
-	//setStatusArea("Recompiling Data...");
-	path vanilla_dir = "./VanillaDats/";
+		path vanilla_dir = "./VanillaDats/";
 	string importCommand = "";
 	char statusString[128];
@@ -561,12 +558,20 @@
 	int j = 1;
 	string datString;
+	
+
+	setStatusArea("Importing levels...");
+	//setStatusArea("Recompiling Data...");
+
 	std::stringstream out;
 
 	ptime start_time(second_clock::local_time());
 	clearOldDats();
-	remove("Install.log");
+	
+	if(exists("Install.log")) remove("Install.log");
 	ofstream logfile("Install.log");
 	logfile << "Mod Installation started " << to_simple_string(start_time) << endl;
 	logfile.close();
+
+
 	if(splitInstances == SPLIT){
 		recursive_directory_iterator end_iter;
@@ -582,11 +587,17 @@
 				}
 			}
-			catch(exception ex) {
-
+			catch(exception & ex) {
+					remove("Install.log");
+					ofstream logfile("Install.log");
+
+
+					logfile << "Warning, exception " << ex.what() << "!";
+					setStatusArea("Warning, exception " + (string)ex.what() + "!");
+					logfile.close();	
 			}
 		}
 		try {
 		//recursive_directory_iterator end_iter;
-
+		
 
 		out << numberOfDats;
@@ -722,6 +733,18 @@
 	Sleep(1000);
 	setProgressBar(0);
-	busy = 0;
-}
+	
+}
+			catch(exception & ex) {
+					remove("Install.log");
+					ofstream logfile("Install.log");
+
+
+					logfile << "Warning, exception " << ex.what() << "!";
+					setStatusArea("Warning, exception " + (string)ex.what() + "!");
+					logfile.close();	
+			}
+			busy = 0;
+}
+
 
 void writeInstalledMods(vector<string> installedMods)
@@ -1392,4 +1415,5 @@
 		recompileAll(thePackages);
 		TheInstallButton->Enable();
+		
 	}
 
@@ -1397,12 +1421,21 @@
 };
 
+void globalize2(void) {
+		TheInstallButton->Disable();
+		globalizeData();
+		TheInstallButton->Enable();
+}
+
+
+
 void MainWindow::OnInstallButtonClick( wxCommandEvent& event )
 {
 
 	vector<string> localPackages;
-	localPackages.push_back("Globalize");
+	localPackages.push_back("00000Globalize");
 	for(int i = 0; i < globalPackages.size(); i++) if(Mods_CheckboxList->IsChecked(i)) localPackages.push_back( globalPackages[i].modStringName );
 	if ( !localPackages.empty() )	{
-	
+		sort(localPackages.begin(), localPackages.end());
+		localPackages[0] = "Globalize";
 		//MainWindow::MainWindow().Hide();	
 		//	boost::thread thrd2(recompileAll(localPackages) );
