Index: /AE/Installer/trunk/source/globals.h
===================================================================
--- /AE/Installer/trunk/source/globals.h	(revision 501)
+++ /AE/Installer/trunk/source/globals.h	(revision 502)
@@ -59,4 +59,5 @@
 	string	modStringName;
 	int	modStringVersion;
+	string	platform;
 	bool	hasOnis;
 	bool	hasDeltas;
Index: /AE/Installer/trunk/source/installer.cpp
===================================================================
--- /AE/Installer/trunk/source/installer.cpp	(revision 501)
+++ /AE/Installer/trunk/source/installer.cpp	(revision 502)
@@ -343,5 +343,12 @@
 				package = fileToModPackage(file);
 				if (package.installerVersion.compare(INSTALLER_VERSION) < 1)  // if mod requires newer version of the Installer, we won't add it to the list
-					packages.push_back(package);
+				{
+#ifdef WIN32
+					if (!package.platform.compare("Windows") || !package.platform.compare("Both")) // don't show package if it's not for the right OS
+#else
+					if (!package.platform.compare("Macintosh") || !package.platform.compare("Both"))
+#endif
+						packages.push_back(package);
+				}
 			}	
 			file.close();
@@ -374,4 +381,5 @@
 	static string ARROW = "->";
 	static string ModString = "ModString";
+	static string Platform = "Platform";
 	static string HasOnis = "HasOnis";
 	static string HasDeltas = "HasDeltas";
@@ -412,4 +420,9 @@
 				iter++;
 				package.modStringVersion = atoi((*iter).c_str());
+			}
+			else if (!Platform.compare(*iter))
+			{
+				iter++; iter++;
+				package.platform = *iter;
 			}
 			else if (!HasOnis.compare(*iter))
@@ -1614,4 +1627,5 @@
 	modStringName = "";
 	modStringVersion = 0;
+	platform = "Both";
 	hasOnis = false;
 	hasDeltas = false;
