Index: AE/Installer/trunk/source/aeinstallerapp.cpp
===================================================================
--- AE/Installer/trunk/source/aeinstallerapp.cpp	(revision 392)
+++ AE/Installer/trunk/source/aeinstallerapp.cpp	(revision 393)
@@ -114,8 +114,8 @@
 	// test for the third-party mono framework, because without it, on Mac, we are up a creek
 	char monoCommand[300] = "which mono >> ";
-	strcat(monoCommand, system_complete("./mono_check.log").string().c_str());
+	strcat(monoCommand, escapePath(system_complete("mono_check.log").string()).c_str());
 	system(monoCommand);
 	fstream file;
-	file.open("./mono_check.log");
+	file.open("mono_check.log");
 	string line;
 	int line_count = 0;
@@ -126,5 +126,5 @@
 	}
 	file.close();
-	remove("./mono_check.log");
+	remove("mono_check.log");
 	
 	if (line_count <= 1) // this means that "which mono" returned nothing -- abort! abort! abort!
Index: AE/Installer/trunk/source/aeinstallerapp.h
===================================================================
--- AE/Installer/trunk/source/aeinstallerapp.h	(revision 392)
+++ AE/Installer/trunk/source/aeinstallerapp.h	(revision 393)
@@ -23,4 +23,5 @@
 ////@end includes
 
+string escapePath(string input);
 
 /*!
Index: AE/Installer/trunk/source/main_window.cpp
===================================================================
--- AE/Installer/trunk/source/main_window.cpp	(revision 392)
+++ AE/Installer/trunk/source/main_window.cpp	(revision 393)
@@ -64,5 +64,5 @@
 	string escape_me = "& ;()|<>\"'\\#*?$";
 	for(int i = 0; i < input.size(); i++)  {
-		for(int j = 0; j < escape_me.size(); j++) if (input[i] == escape_me[j]) output += '//';
+		for(int j = 0; j < escape_me.size(); j++) if (input[i] == escape_me[j]) output += '\\';
 		output += input[i];
 	}
@@ -355,7 +355,7 @@
 		   If there are no Oni prefs (only possible if Oni has not been run even once), then the above line will fail silently, no harm done,
 		   and when the user does run Oni for the first time, using the copy of the app in the AE GDF, Oni will set the prefs to use that GDF at that point */
-		path fullAEpath = system_complete("."); // get full path for Installer
+		string fullAEpath = escapePath(system_complete(".").parent_path().parent_path().string()); // get full path for Installer
 		char prefsCommand[300] = "defaults write com.godgames.oni RetailInstallationPath -string '";
-		strcat(prefsCommand, fullAEpath.parent_path().parent_path().string().c_str()); // get path of edition/ folder (Oni wants the folder that *contains* the GDF)
+		strcat(prefsCommand, fullAEpath.c_str()); // get path of edition/ folder (Oni wants the folder that *contains* the GDF)
 		strcat(prefsCommand, "'"); // path string is enclosed in single quotes to avoid the need to escape UNIX-unfriendly characters
 		system(prefsCommand);
