Index: code/branches/resource2/src/core/Clock.h
===================================================================
--- code/branches/resource2/src/core/Clock.h	(revision 5651)
+++ code/branches/resource2/src/core/Clock.h	(revision 5652)
@@ -21,7 +21,7 @@
  *
  *   Author:
- *      Fabian 'x3n' Landau
+ *      Reto Grieder
  *   Co-authors:
- *      Reto Grieder
+ *      ...
  *
  */
Index: code/branches/resource2/src/core/ConfigFileManager.cc
===================================================================
--- code/branches/resource2/src/core/ConfigFileManager.cc	(revision 5651)
+++ code/branches/resource2/src/core/ConfigFileManager.cc	(revision 5652)
@@ -40,8 +40,4 @@
 namespace orxonox
 {
-    const char* const DEFAULT_CONFIG_FILE = "default.ini";
-
-    ConfigFileManager* ConfigFileManager::singletonPtr_s = 0;
-
     SetConsoleCommandShortcutExtern(config).argumentCompleter(0, autocompletion::configvalueclasses()).argumentCompleter(1, autocompletion::configvalues()).argumentCompleter(2, autocompletion::configvalue());
     SetConsoleCommandShortcutExtern(tconfig).argumentCompleter(0, autocompletion::configvalueclasses()).argumentCompleter(1, autocompletion::configvalues()).argumentCompleter(2, autocompletion::configvalue());
@@ -339,8 +335,6 @@
     void ConfigFile::save() const
     {
-        boost::filesystem::path filepath(Core::getConfigPath() / this->filename_);
-
         std::ofstream file;
-        file.open(filepath.string().c_str(), std::fstream::out);
+        file.open((Core::getConfigPathString() + filename_).c_str(), std::fstream::out);
         file.setf(std::ios::fixed, std::ios::floatfield);
         file.precision(6);
@@ -479,4 +473,8 @@
     ///////////////////////
 
+    ConfigFileManager* ConfigFileManager::singletonPtr_s = 0;
+
+    std::string ConfigFileManager::DEFAULT_CONFIG_FILE = "default.ini";
+
     ConfigFileManager::ConfigFileManager()
          : mininmalFreeType_(ConfigFileType::numberOfReservedTypes)
Index: code/branches/resource2/src/core/ConfigFileManager.h
===================================================================
--- code/branches/resource2/src/core/ConfigFileManager.h	(revision 5651)
+++ code/branches/resource2/src/core/ConfigFileManager.h	(revision 5652)
@@ -307,4 +307,6 @@
             void updateConfigValues(ConfigFileType type);
 
+            static std::string DEFAULT_CONFIG_FILE;
+
         private:
             ConfigFileManager(const ConfigFileManager&);
Index: code/branches/resource2/src/orxonox/gamestates/GSDedicated.cc
===================================================================
--- code/branches/resource2/src/orxonox/gamestates/GSDedicated.cc	(revision 5651)
+++ code/branches/resource2/src/orxonox/gamestates/GSDedicated.cc	(revision 5652)
@@ -28,4 +28,8 @@
 
 #include "GSDedicated.h"
+
+#include <iomanip>
+#include <iostream>
+#include <boost/bind.hpp>
 
 #include "util/Debug.h"
@@ -37,8 +41,4 @@
 #include "core/GameMode.h"
 #include "network/Server.h"
-
-#include <iostream>
-#include <iomanip>
-#include <boost/bind.hpp>
 
 #ifdef ORXONOX_PLATFORM_UNIX
Index: code/branches/resource2/src/orxonox/tools/ResourceCollection.cc
===================================================================
--- code/branches/resource2/src/orxonox/tools/ResourceCollection.cc	(revision 5651)
+++ code/branches/resource2/src/orxonox/tools/ResourceCollection.cc	(revision 5652)
@@ -36,4 +36,6 @@
 namespace orxonox
 {
+    CreateFactory(ResourceCollection);
+
     ResourceCollection::ResourceCollection(BaseObject* creator)
         : BaseObject(creator)
Index: code/branches/resource2/src/orxonox/tools/ResourceLocation.cc
===================================================================
--- code/branches/resource2/src/orxonox/tools/ResourceLocation.cc	(revision 5651)
+++ code/branches/resource2/src/orxonox/tools/ResourceLocation.cc	(revision 5652)
@@ -30,10 +30,16 @@
 
 #include <OgreResourceGroupManager.h>
+#include <boost/filesystem.hpp>
+
 #include "util/Exception.h"
+#include "core/Core.h"
 #include "core/CoreIncludes.h"
+#include "core/XMLFile.h"
 #include "core/XMLPort.h"
 
 namespace orxonox
 {
+    CreateFactory(ResourceLocation);
+
     ResourceLocation::ResourceLocation(BaseObject* creator)
         : BaseObject(creator)
@@ -43,5 +49,5 @@
         // Default values
         archiveType_ = "FileSystem";
-        bRecursive_  = false;
+        bRecursive_  = true;
     }
 
@@ -63,7 +69,20 @@
         if (path_.empty())
             ThrowException(InitialisationFailed, "ResourceLocation: Trying to add one without the path being set");
+
+        // Find the path
+        boost::filesystem::path path;
+        if (boost::filesystem::exists(Core::getDataPath() / this->getPath()))
+            path = Core::getDataPath() / this->getPath();
+        else if (Core::isDevelopmentRun() && boost::filesystem::exists(Core::getExternalDataPath() / this->getPath()))
+            path = Core::getExternalDataPath() / this->getPath();
+        else
+        {
+            COUT(2) << "Warning: ResourceLocation '" << this->getPath() << "' does not seem to exist" << std::endl;
+            return;
+        }
+
         // Add it to the Ogre paths
         Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
-            this->getPath(), this->getArchiveType(), resourceGroup, this->getRecursive());
+            path.string(), this->getArchiveType(), resourceGroup, this->getRecursive());
         resourceGroup_ = resourceGroup;
     }
