Index: code/trunk/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/trunk/src/orxonox/gamestates/GSLevel.cc	(revision 2994)
+++ code/trunk/src/orxonox/gamestates/GSLevel.cc	(revision 3008)
@@ -60,4 +60,7 @@
     SetCommandLineArgument(level, "presentation_dm.oxw").shortcut("l");
     SetConsoleCommand(GSLevel, showIngameGUI, true);
+    SetConsoleCommand(GSLevel, setLevel, true);
+
+    XMLFile* GSLevel::startFile_s = NULL;
 
     GSLevel::GSLevel(const std::string& name)
@@ -68,5 +71,4 @@
         , guiKeysOnlyInputState_(0)
         , radar_(0)
-        , startFile_(0)
         , cameraManager_(0)
         , levelManager_(0)
@@ -252,7 +254,16 @@
         COUT(0) << "Loading level..." << std::endl;
         std::string levelName;
-        CommandLine::getValue("level", &levelName);
-        startFile_ = new XMLFile(Core::getMediaPathString() + "levels" + '/' + levelName);
-        Loader::open(startFile_);
+        if (!startFile_s)
+        {
+            CommandLine::getValue("level", &levelName);
+            startFile_s = new XMLFile(Core::getMediaPathString() + "levels" + '/' + levelName);
+        }
+        Loader::open(startFile_s);
+    }
+
+    void GSLevel::setLevel(std::string levelName)
+    {
+        delete GSLevel::startFile_s;
+        GSLevel::startFile_s = new XMLFile(Core::getMediaPathString() + "levels" + '/' + levelName);
     }
 
@@ -265,5 +276,5 @@
         //////////////////////////////////////////////////////////////////////////////////////////
 
-        delete this->startFile_;
+        delete startFile_s;
     }
 
Index: code/trunk/src/orxonox/gamestates/GSLevel.h
===================================================================
--- code/trunk/src/orxonox/gamestates/GSLevel.h	(revision 2994)
+++ code/trunk/src/orxonox/gamestates/GSLevel.h	(revision 3008)
@@ -48,4 +48,7 @@
 
         static void showIngameGUI(bool show);
+        static void setLevel(std::string levelName);
+
+        static XMLFile* startFile_s;
 
     protected:
@@ -63,5 +66,4 @@
         SimpleInputState*     guiKeysOnlyInputState_;   //!< input state if we only need the keys to use the GUI
         Radar*                radar_;                   //!< represents the Radar (not the HUD part)
-        XMLFile*              startFile_;               //!< current hard coded default level
         CameraManager*        cameraManager_;           //!< camera manager for this level
         LevelManager*         levelManager_;            //!< global level manager
Index: code/trunk/src/orxonox/gui/GUIManager.cc
===================================================================
--- code/trunk/src/orxonox/gui/GUIManager.cc	(revision 2994)
+++ code/trunk/src/orxonox/gui/GUIManager.cc	(revision 3008)
@@ -55,4 +55,5 @@
 #include "ToluaBindCore.h"
 #include "ToluaBindOrxonox.h"
+#include "core/Loader.h"
 
 extern "C" {
@@ -238,4 +239,25 @@
             COUT(2) << "CEGUI Error: \"" << ex.getMessage() << "\" while executing code \"" << str << "\"" << std::endl;
         }
+    }
+
+    /**
+
+    */
+    void GUIManager::getLevelList()
+    {
+        lua_State* L = this->scriptModule_->getLuaState();
+        lua_newtable(L);
+
+        std::vector<std::string> list = Loader::getLevelList();
+
+        int j = 1;
+        for (std::vector<std::string>::iterator i = list.begin(); i != list.end(); i++)
+        {
+            lua_pushnumber(L,j);
+            lua_pushstring(L,i->c_str());
+            lua_settable(L,-3);
+            j++;
+        }
+        lua_setglobal(L, "levellist");
     }
 
Index: code/trunk/src/orxonox/gui/GUIManager.h
===================================================================
--- code/trunk/src/orxonox/gui/GUIManager.h	(revision 2994)
+++ code/trunk/src/orxonox/gui/GUIManager.h	(revision 3008)
@@ -97,4 +97,6 @@
         static GUIManager* getInstancePtr() { return singletonRef_s; }
 
+        void getLevelList(); //tolua_export
+
     private:
         GUIManager(const GUIManager& instance);                 //!< private constructor (this is a singleton class)
