Index: code/branches/buildsystem3/src/orxonox/Main.cc
===================================================================
--- code/branches/buildsystem3/src/orxonox/Main.cc	(revision 2699)
+++ code/branches/buildsystem3/src/orxonox/Main.cc	(revision 2702)
@@ -92,14 +92,9 @@
     using namespace orxonox;
 
-    // First, determine whether we have an installed or a binary dir run
-    // The latter occurs when simply running from the build directory
-    Core::checkDevBuild();
-
-    // Make sure the directories we write in exist or else make them
-    Core::createDirectories();
+    Core::postMainInitialisation();
 
     // create a signal handler (only active for linux)
     SignalHandler signalHandler;
-    signalHandler.doCatch(argv[0], Core::getLogPath() + "orxonox_crash.log");
+    signalHandler.doCatch(argv[0], Core::getLogPathString() + "orxonox_crash.log");
 
     // Parse command line arguments
Index: code/branches/buildsystem3/src/orxonox/gamestates/GSGraphics.cc
===================================================================
--- code/branches/buildsystem3/src/orxonox/gamestates/GSGraphics.cc	(revision 2699)
+++ code/branches/buildsystem3/src/orxonox/gamestates/GSGraphics.cc	(revision 2702)
@@ -45,4 +45,5 @@
 #include <OgreWindowEventUtilities.h>
 
+#include "SpecialConfig.h"
 #include "util/Debug.h"
 #include "util/Exception.h"
@@ -135,5 +136,5 @@
         // load debug overlay
         COUT(3) << "Loading Debug Overlay..." << std::endl;
-        this->debugOverlay_ = new XMLFile(Core::getMediaPath() + "overlay/debug.oxo");
+        this->debugOverlay_ = new XMLFile((Core::getMediaPath() / "overlay" / "debug.oxo").file_string());
         Loader::open(debugOverlay_);
 
@@ -293,8 +294,6 @@
         }
 
-        boost::filesystem::path ogreConfigFilepath(Core::getConfigPath());
-        ogreConfigFilepath /= this->ogreConfigFile_;
-        boost::filesystem::path ogreLogFilepath(Core::getLogPath());
-        ogreLogFilepath /= this->ogreLogFile_;
+        boost::filesystem::path ogreConfigFilepath(Core::getConfigPath() / this->ogreConfigFile_);
+        boost::filesystem::path ogreLogFilepath(Core::getLogPath() / this->ogreLogFile_);
 
         // create a new logManager
@@ -357,5 +356,5 @@
         try
         {
-            cf.load(Core::getMediaPath() + resourceFile_);
+            cf.load((Core::getMediaPath() / resourceFile_).file_string());
         }
         catch (...)
@@ -383,5 +382,5 @@
 
                     Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
-                        std::string(Core::getMediaPath() + archName), typeName, secName);
+                        (Core::getMediaPath() / archName).directory_string(), typeName, secName);
                 }
             }
Index: code/branches/buildsystem3/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/branches/buildsystem3/src/orxonox/gamestates/GSLevel.cc	(revision 2699)
+++ code/branches/buildsystem3/src/orxonox/gamestates/GSLevel.cc	(revision 2702)
@@ -202,5 +202,5 @@
         std::string levelName;
         CommandLine::getValue("level", &levelName);
-        startFile_ = new XMLFile(Core::getMediaPath() + std::string("levels/") + levelName);
+        startFile_ = new XMLFile(Core::getMediaPathString() + "levels" + CP_SLASH + levelName);
         Loader::open(startFile_);
     }
Index: code/branches/buildsystem3/src/orxonox/gamestates/GSRoot.cc
===================================================================
--- code/branches/buildsystem3/src/orxonox/gamestates/GSRoot.cc	(revision 2699)
+++ code/branches/buildsystem3/src/orxonox/gamestates/GSRoot.cc	(revision 2702)
@@ -111,5 +111,5 @@
 
         // initialise TCL
-        this->tclBind_ = new TclBind(Core::getMediaPath());
+        this->tclBind_ = new TclBind(Core::getMediaPathPOSIXString());
         this->tclThreadManager_ = new TclThreadManager(tclBind_->getTclInterpreter());
 
Index: code/branches/buildsystem3/src/orxonox/gui/GUIManager.cc
===================================================================
--- code/branches/buildsystem3/src/orxonox/gui/GUIManager.cc	(revision 2699)
+++ code/branches/buildsystem3/src/orxonox/gui/GUIManager.cc	(revision 2702)
@@ -42,4 +42,5 @@
 #include <CEGUIDefaultLogger.h>
 #include <ogreceguirenderer/OgreCEGUIRenderer.h>
+#include "SpecialConfig.h" // Configures the macro below
 #ifdef CEGUILUA_USE_INTERNAL_LIBRARY
 #   include <ceguilua/CEGUILua.h>
@@ -151,5 +152,5 @@
 
                 // Create our own logger to specify the filepath
-                boost::filesystem::path ceguiLogFilepath(Core::getLogPath() + "cegui.log");
+                boost::filesystem::path ceguiLogFilepath(Core::getLogPath() / "cegui.log");
                 this->ceguiLogger_ = new DefaultLogger();
                 this->ceguiLogger_->setLogFilename(ceguiLogFilepath.file_string());
Index: code/branches/buildsystem3/src/orxonox/objects/Level.cc
===================================================================
--- code/branches/buildsystem3/src/orxonox/objects/Level.cc	(revision 2699)
+++ code/branches/buildsystem3/src/orxonox/objects/Level.cc	(revision 2702)
@@ -55,6 +55,6 @@
         this->xmlfilename_ = this->getFilename();
 
-        if (this->xmlfilename_.length() >= Core::getMediaPath().length())
-            this->xmlfilename_ = this->xmlfilename_.substr(Core::getMediaPath().length());
+        if (this->xmlfilename_.length() >= Core::getMediaPathString().length())
+            this->xmlfilename_ = this->xmlfilename_.substr(Core::getMediaPathString().length());
     }
 
@@ -97,5 +97,5 @@
         mask.include(Class(OverlayGroup)); // HACK to include the ChatOverlay
 
-        this->xmlfile_ = new XMLFile(Core::getMediaPath() + this->xmlfilename_, mask);
+        this->xmlfile_ = new XMLFile(Core::getMediaPathString() + this->xmlfilename_, mask);
 
         Loader::open(this->xmlfile_);
