Index: code/branches/gui/src/core/CommandLine.cc
===================================================================
--- code/branches/gui/src/core/CommandLine.cc	(revision 1689)
+++ code/branches/gui/src/core/CommandLine.cc	(revision 1690)
@@ -28,4 +28,6 @@
 
 #include "CommandLine.h"
+
+#include "util/String.h"
 
 namespace orxonox
@@ -108,4 +110,5 @@
 
                         // save old data first
+                        value = removeTrailingWhitespaces(value);
                         if (name != "")
                         {
@@ -152,4 +155,5 @@
 
         // parse last argument
+        value = removeTrailingWhitespaces(value);
         if (name != "")
         {
Index: code/branches/gui/src/core/GameState.cc
===================================================================
--- code/branches/gui/src/core/GameState.cc	(revision 1689)
+++ code/branches/gui/src/core/GameState.cc	(revision 1690)
@@ -59,5 +59,5 @@
     GameStateBase::~GameStateBase()
     {
-        OrxAssert(!isInSubtree(getCurrentState()), "Deleting an active GameState is a very bad idea..");
+        OrxAssert(this->operation_.active == false, "Deleting an active GameState is a very bad idea..");
     }
 
Index: code/branches/gui/src/core/GameState.h
===================================================================
--- code/branches/gui/src/core/GameState.h	(revision 1689)
+++ code/branches/gui/src/core/GameState.h	(revision 1690)
@@ -139,5 +139,8 @@
     {
     public:
-        GameState(const std::string& name) : GameStateBase(name) { }
+        GameState(const std::string& name)
+            : GameStateBase(name)
+            , parent_(0)
+        { }
         virtual ~GameState() { }
 
Index: code/branches/gui/src/core/RootGameState.cc
===================================================================
--- code/branches/gui/src/core/RootGameState.cc	(revision 1689)
+++ code/branches/gui/src/core/RootGameState.cc	(revision 1690)
@@ -29,4 +29,6 @@
 #include "RootGameState.h"
 
+#include "util/String.h"
+#include "util/SubString.h"
 #include "Clock.h"
 #include "Debug.h"
@@ -129,5 +131,5 @@
     void RootGameState::start(int argc, char** argv)
     {
-        parseCommandLine(argc, argv);
+        parseArguments(argc, argv);
 
         this->activate();
@@ -152,6 +154,11 @@
     }
 
-    void RootGameState::parseCommandLine(int argc, char** argv)
-    {
+    /**
+    @brief
+        Parses both command line and start.ini for CommandLineArguments.
+    */
+    void RootGameState::parseArguments(int argc, char** argv)
+    {
+        // parse command line first
         std::vector<std::string> args;
         for (int i = 1; i < argc; ++i)
@@ -167,4 +174,38 @@
             COUT(0) << "Usage:" << std::endl << "orxonox " << CommandLine::getUsageInformation() << std::endl;
         }
+
+        // look for additional arguments in start.ini
+        std::ifstream file;
+        file.open("start.ini");
+        args.clear();
+        if (file)
+        {
+            while (!file.eof())
+            {
+                std::string line;
+                std::getline(file, line);
+                line = removeTrailingWhitespaces(line);
+                //if (!(line[0] == '#' || line[0] == '%'))
+                //{
+                SubString tokens(line, " ", " ", false, 92, false, 34, false, 40, 41, false, '#');
+                for (unsigned i = 0; i < tokens.size(); ++i)
+                    if (tokens[i][0] != '#')
+                        args.push_back(tokens[i]);
+                //args.insert(args.end(), tokens.getAllStrings().begin(), tokens.getAllStrings().end());
+                //}
+            }
+            file.close();
+        }
+
+        try
+        {
+            orxonox::CommandLine::parse(args);
+        }
+        catch (orxonox::ArgumentException& ex)
+        {
+            COUT(1) << "An Exception occured while parsing start.ini" << std::endl;
+            COUT(1) << ex.what() << std::endl;
+            COUT(0) << "Usage:" << std::endl << "orxonox " << CommandLine::getUsageInformation() << std::endl;
+        }
     }
 }
Index: code/branches/gui/src/core/RootGameState.h
===================================================================
--- code/branches/gui/src/core/RootGameState.h	(revision 1689)
+++ code/branches/gui/src/core/RootGameState.h	(revision 1690)
@@ -48,5 +48,5 @@
         void gotoState(const std::string& name);
 
-        void parseCommandLine(int argc, char** argv);
+        void parseArguments(int argc, char** argv);
 
         std::string           stateRequest_;
