Index: code/branches/menu/src/libraries/core/GUIManager.cc
===================================================================
--- code/branches/menu/src/libraries/core/GUIManager.cc	(revision 6024)
+++ code/branches/menu/src/libraries/core/GUIManager.cc	(revision 6032)
@@ -89,5 +89,5 @@
     GUIManager* GUIManager::singletonPtr_s = 0;
 
-    SetConsoleCommandShortcut(GUIManager, showGUI).accessLevel(AccessLevel::User).defaultValue(1, true);
+    SetConsoleCommandShortcut(GUIManager, showGUI).accessLevel(AccessLevel::User).defaultValue(1, false).defaultValue(2, true);
     SetConsoleCommandShortcut(GUIManager, hideGUI).accessLevel(AccessLevel::User);
 
@@ -210,5 +210,5 @@
         For more details check out loadGUI_2.lua where the function presides.
     */
-    /*static*/ void GUIManager::showGUI(const std::string& name, bool showCursor)
+    /*static*/ void GUIManager::showGUI(const std::string& name, bool hidePrevious, bool showCursor)
     {
         std::pair<std::set<std::string>::iterator,bool> result = GUIManager::getInstance().showingGUIs_.insert(name);
@@ -220,5 +220,6 @@
             InputManager::getInstance().enterState("guiMouseOnly");
         }
-        GUIManager::getInstance().executeCode("showGUI(\"" + name + "\", " + multi_cast<std::string>(showCursor) + ")");
+        COUT(0) << "showGUI" << endl;
+        GUIManager::getInstance().executeCode("showGUI(\"" + name + "\", " + multi_cast<std::string>(hidePrevious) + ", " + multi_cast<std::string>(showCursor) + ")");
     }
 
@@ -227,5 +228,5 @@
         Hack-ish. Needed for GUIOverlay.
     */
-    void GUIManager::showGUIExtra(const std::string& name, const std::string& ptr, bool showCursor)
+    void GUIManager::showGUIExtra(const std::string& name, const std::string& ptr, bool hidePrevious, bool showCursor)
     {
         std::pair<std::set<std::string>::iterator,bool> result = this->showingGUIs_.insert(name);
@@ -237,5 +238,5 @@
             InputManager::getInstance().enterState("guiMouseOnly");
         }
-        this->executeCode("showGUI(\"" + name + "\", " + multi_cast<std::string>(showCursor) + ", " + ptr + ")");
+        this->executeCode("showGUI(\"" + name + "\", " + multi_cast<std::string>(hidePrevious) + ", " + multi_cast<std::string>(showCursor) + ", " + ptr + ")");
     }
 
@@ -258,4 +259,15 @@
         }
     }
+    
+    void GUIManager::setToggleMode(const bool& mode)
+    {
+        this->bToggleMode_ = mode;
+        this->executeCode("setToggleMode(" + multi_cast<std::string>(mode) + ")");
+    }
+    
+    void GUIManager::setBackground(const std::string& name)
+    {
+        this->executeCode("setBackground(\"" + name + "\")");
+    }
 
     void GUIManager::keyPressed(const KeyEvent& evt)
Index: code/branches/menu/src/libraries/core/GUIManager.h
===================================================================
--- code/branches/menu/src/libraries/core/GUIManager.h	(revision 6024)
+++ code/branches/menu/src/libraries/core/GUIManager.h	(revision 6032)
@@ -68,7 +68,9 @@
         void update(const Clock& time); 
 
-        static void showGUI(const std::string& name, bool showCursor=true);
-        void showGUIExtra(const std::string& name, const std::string& ptr, bool showCursor=true);
+        static void showGUI(const std::string& name, bool hidePrevious=false, bool showCursor=true);
+        void showGUIExtra(const std::string& name, const std::string& ptr, bool hidePrevious=false, bool showCursor=true);
         static void hideGUI(const std::string& name);
+        void setToggleMode(const bool& mode);
+        void setBackground(const std::string& name);
 
         void setCamera(Ogre::Camera* camera);
@@ -111,4 +113,5 @@
 
         static GUIManager*                   singletonPtr_s;    //!< Singleton reference to GUIManager
+        bool                                 bToggleMode_;
 
     };
Index: code/branches/menu/src/orxonox/gamestates/GSMainMenu.cc
===================================================================
--- code/branches/menu/src/orxonox/gamestates/GSMainMenu.cc	(revision 6024)
+++ code/branches/menu/src/orxonox/gamestates/GSMainMenu.cc	(revision 6032)
@@ -82,6 +82,8 @@
     {
         // show main menu
-        GUIManager::getInstance().showGUI("MainMenu", false);
+        GUIManager::getInstance().showGUI("MainMenu", true, false);
         GUIManager::getInstance().setCamera(this->camera_);
+        GUIManager::getInstance().setBackground("MainMenuBackground");
+//         GUIManager::getInstance().setBackground("");
         GraphicsManager::getInstance().setCamera(this->camera_);
 
@@ -113,4 +115,5 @@
 
         GUIManager::getInstance().setCamera(0);
+        GUIManager::getInstance().setBackground("");
         GUIManager::hideGUI("MainMenu");
         GraphicsManager::getInstance().setCamera(0);
