Index: /AE/Installer/trunk/source/about.cpp
===================================================================
--- /AE/Installer/trunk/source/about.cpp	(revision 547)
+++ /AE/Installer/trunk/source/about.cpp	(revision 548)
@@ -127,4 +127,5 @@
 							"ssg: Documenting Oni's game data";
     wxStaticText* itemStaticText5 = new wxStaticText( itemPanel3, wxID_STATIC, _(aboutText.c_str()), wxDefaultPosition, wxDefaultSize, wxNO_BORDER );
+	
     itemBoxSizer4->Add(itemStaticText5, 0, wxALIGN_LEFT|wxALL, 5);
 	
Index: /AE/Installer/trunk/source/installer.cpp
===================================================================
--- /AE/Installer/trunk/source/installer.cpp	(revision 547)
+++ /AE/Installer/trunk/source/installer.cpp	(revision 548)
@@ -660,5 +660,5 @@
 		for (unsigned int j = 0; j < globalPackages.size(); ++j) {				//looking in the global packages
 			if (globalPackages[j].modStringName == installedMods[i]) {	//for a mod that has BSL in it
-				if(!(globalPackages[j].hasAddon || globalPackages[j].hasBSL)) break; //skip non-BSL
+				if(globalPackages[j].hasBSL)) break; //skip non-BSL
 				if( exists( "packages/" + globalPackages[j].modStringName + "/BSL/" ) ) {
 					copyBSL("packages/" + globalPackages[j].modStringName + "/BSL", BSLfolders, globalPackages[j] );
@@ -669,4 +669,6 @@
 	}
 	
+
+
 	ModPackage emptyPackage;
 	emptyPackage.modStringName = "VanillaBSL";
@@ -674,5 +676,17 @@
 	copyBSL("packages/VanillaBSL/IGMD", BSLfolders, emptyPackage);
 	BSLlog.close();
-	
+
+	for (int i = installedMods.size() - 1; i >= 0; i--) {							//Iterates through the installed mods (backwards :P)
+		for (unsigned int j = 0; j < globalPackages.size(); ++j) {				//looking in the global packages
+			if (globalPackages[j].modStringName == installedMods[i]) {	//for a mod that has BSL in it
+				if(!globalPackages[j].hasAddon) break; //skip non-BSL
+				if( exists( "packages/" + globalPackages[j].modStringName + "/BSL/" ) ) {
+					copyBSL("packages/" + globalPackages[j].modStringName + "/BSL", BSLfolders, globalPackages[j] );
+					BSLlog << "Copied " <<  globalPackages[j].modStringName << "!\n";
+				}
+			}
+		}
+	}
+
 	logfile << "Writing config file";
 	writeInstalledMods(installedMods);
@@ -715,11 +729,12 @@
 				BSLlog << "Testing " << dir_itr->path().string() << " HasBSL: " << pkg.hasBSL << " HasAddon: " << pkg.hasAddon << "\n";
 				int skip_folder = 0;
-				
-				for(unsigned int k = 0; k < BSLfolders.size(); k++)		{//iterate through already found BSL folders	
-					BSLlog << "testing " << dir_itr->path().filename() << " vs " << BSLfolders[k] << "\n";
-					if(dir_itr->path().filename() == BSLfolders[k]) {
-						skip_folder = 1;
-						BSLlog << "skipping " << BSLfolders[k] << " in " << pkg.modStringName << "\n";
-						break;
+				if(!pkg.HasAddon) {
+					for(unsigned int k = 0; k < BSLfolders.size(); k++)		{//iterate through already found BSL folders	
+						BSLlog << "testing " << dir_itr->path().filename() << " vs " << BSLfolders[k] << "\n";
+						if(dir_itr->path().filename() == BSLfolders[k]) {
+							skip_folder = 1;
+							BSLlog << "skipping " << BSLfolders[k] << " in " << pkg.modStringName << "\n";
+							break;
+						}
 					}
 				}
