Index: code/branches/network/src/orxonox/GraphicsEngine.cc
===================================================================
--- code/branches/network/src/orxonox/GraphicsEngine.cc	(revision 1491)
+++ code/branches/network/src/orxonox/GraphicsEngine.cc	(revision 1493)
@@ -157,5 +157,5 @@
       myLog = logger->createLog("ogre.log", true, false, true);
     else
-          myLog = logger->createLog(this->ogreLogfile_, true, false, false);
+      myLog = logger->createLog(this->ogreLogfile_, true, false, false);
     CCOUT(4) << "Ogre Log created" << std::endl;
 
@@ -166,5 +166,15 @@
     // Root will detect that we've already created a Log
     CCOUT(4) << "Creating Ogre Root..." << std::endl;
-    root_ = new Ogre::Root(plugin_filename);
+
+    root_ = new Ogre::Root(plugin_filename, "ogre.cfg", this->ogreLogfile_);
+
+#if ORXONOX_PLATFORM != ORXONOX_PLATFORM_WIN32
+    // tame the ogre ouput so we don't get all the mess in the console
+    Ogre::Log* defaultLog = Ogre::LogManager::getSingleton().getDefaultLog();
+    defaultLog->setDebugOutputEnabled(false);
+    defaultLog->setLogDetail(Ogre::LL_BOREME);
+    defaultLog->addListener(this);
+#endif
+
     CCOUT(4) << "Creating Ogre Root done" << std::endl;
 
@@ -251,5 +261,5 @@
   bool GraphicsEngine::createNewScene()
   {
-    CCOUT(4) << "Creating new SceneManager" << std::endl;
+    CCOUT(4) << "Creating new SceneManager..." << std::endl;
     if (scene_)
     {
Index: code/branches/network/src/orxonox/Orxonox.cc
===================================================================
--- code/branches/network/src/orxonox/Orxonox.cc	(revision 1491)
+++ code/branches/network/src/orxonox/Orxonox.cc	(revision 1493)
@@ -187,5 +187,5 @@
       mode_ = SERVER;
     else if (mode == "dedicated")
-      mode_= DEDICATED;
+      mode_ = DEDICATED;
     else
     {
@@ -217,32 +217,38 @@
   bool Orxonox::start()
   {
-    //if (mode_ == DEDICATED)
-    // do something else
-    //else
-
-    if (!ogre_->loadRenderer())    // creates the render window
-      return false;
-
-    // Calls the InputManager which sets up the input devices.
-    // The render window width and height are used to set up the mouse movement.
-    if (!InputManager::initialise(ogre_->getWindowHandle(),
-          ogre_->getWindowWidth(), ogre_->getWindowHeight(), true, true, true))
-      return false;
-
-    // TODO: Spread this so that this call only initialises things needed for the GUI
-    if (!ogre_->initialiseResources())
-      return false;
-
-    // TOOD: load the GUI here
-    // set InputManager to GUI mode
-    InputManager::setInputState(InputManager::IS_GUI);
-    // TODO: run GUI here
-
-    // The following lines depend very much on the GUI output, so they're probably misplaced here..
-
-    InputManager::setInputState(InputManager::IS_NONE);
-
-    if (!loadPlayground())
-      return false;
+    if (mode_ == DEDICATED)
+    {
+      // do something else
+    }
+    else
+    { // not dedicated server
+      if (!ogre_->loadRenderer())    // creates the render window
+        return false;
+
+      // Calls the InputManager which sets up the input devices.
+      // The render window width and height are used to set up the mouse movement.
+      if (!InputManager::initialise(ogre_->getWindowHandle(),
+            ogre_->getWindowWidth(), ogre_->getWindowHeight(), true, true, true))
+        return false;
+
+      // TODO: Spread this so that this call only initialises things needed for the GUI
+      if (!ogre_->initialiseResources())
+        return false;
+
+      // TOOD: load the GUI here
+      // set InputManager to GUI mode
+      InputManager::setInputState(InputManager::IS_GUI);
+      // TODO: run GUI here
+
+      // The following lines depend very much on the GUI output, so they're probably misplaced here..
+
+      InputManager::setInputState(InputManager::IS_NONE);
+
+      // create Ogre SceneManager
+      ogre_->createNewScene();
+
+      if (!loadPlayground())
+        return false;
+    }
 
     switch (mode_)
@@ -256,4 +262,8 @@
         return false;
       break;
+    case DEDICATED:
+      if (!serverLoad())
+        return false;
+      break;
     default:
       if (!standaloneLoad())
@@ -272,7 +282,5 @@
   bool Orxonox::loadPlayground()
   {
-    ogre_->createNewScene();
-
-	  // Init audio
+    // Init audio
     //auMan_ = new audio::AudioManager();
     //auMan_->ambientAdd("a1");
@@ -346,13 +354,13 @@
     Loader::open(startlevel);
     
-
-    Ogre::SceneManager* mSceneMgr = GraphicsEngine::getSingleton().getSceneManager();
+    // HACK: shader stuff for presentation
+    /*Ogre::SceneManager* mSceneMgr = GraphicsEngine::getSingleton().getSceneManager();
     mSceneMgr->setAmbientLight(ColourValue(0.4,0.4,0.4));
     Ogre::Light* dirlight = mSceneMgr->createLight("Light1");
 
-       dirlight->setType(Ogre::Light::LT_DIRECTIONAL);
-       dirlight->setDirection(Vector3( 0, 1, 5 ));
-       dirlight->setDiffuseColour(ColourValue(0.6, 0.6, 0.4));
-       dirlight->setSpecularColour(ColourValue(1.0, 1.0, 1.0));
+    dirlight->setType(Ogre::Light::LT_DIRECTIONAL);
+    dirlight->setDirection(Vector3( 0, 1, 5 ));
+    dirlight->setDiffuseColour(ColourValue(0.6, 0.6, 0.4));
+    dirlight->setSpecularColour(ColourValue(1.0, 1.0, 1.0));*/
     
     return true;
@@ -402,10 +410,6 @@
 
     COUT(3) << "Orxonox: Starting the main loop." << std::endl;
-	  while (!bAbort_)
-	  {
-		  // Pump messages in all registered RenderWindows
-      // This calls the WindowEventListener objects.
-      Ogre::WindowEventUtilities::messagePump();
-
+    while (!bAbort_)
+    {
       // get current time
       unsigned long now = timer_->getMilliseconds();
@@ -419,5 +423,5 @@
       // show the current time in the HUD
       // HUD::getSingleton().setTime(now);
-      if (frameTime > 0.4f)
+      if (mode_ != DEDICATED && frameTime > 0.4f)
       {
         HUD::getSingleton().setRenderTimeRatio(renderTime / frameTime);
@@ -435,6 +439,5 @@
       // don't forget to call _fireFrameStarted in ogre to make sure
       // everything goes smoothly
-      if(mode_!=DEDICATED)
-        ogreRoot._fireFrameStarted(evt);
+      ogreRoot._fireFrameStarted(evt);
 
       // get current time
@@ -442,6 +445,13 @@
       calculateEventTime(now, eventTimes[2]);
 
-      if(mode_!=DEDICATED)
-        ogreRoot._updateAllRenderTargets(); // only render in non-server mode
+      if (mode_ != DEDICATED)
+      {
+        // Pump messages in all registered RenderWindows
+        // This calls the WindowEventListener objects.
+        Ogre::WindowEventUtilities::messagePump();
+
+        // render
+        ogreRoot._updateAllRenderTargets();
+      }
 
       // get current time
@@ -453,11 +463,11 @@
 
       // again, just to be sure ogre works fine
-      if(mode_!=DEDICATED)
-        ogreRoot._fireFrameEnded(evt);
-	  }
-
-    if (mode_==CLIENT)
+      ogreRoot._fireFrameEnded(evt);
+      //msleep(200);
+    }
+
+    if (mode_ == CLIENT)
       network::Client::getSingleton()->closeConnection();
-    else if (mode_==SERVER)
+    else if (mode_ == SERVER)
       server_g->close();
 
Index: code/branches/network/src/orxonox/Orxonox.h
===================================================================
--- code/branches/network/src/orxonox/Orxonox.h	(revision 1491)
+++ code/branches/network/src/orxonox/Orxonox.h	(revision 1493)
Index: code/branches/network/src/orxonox/tools/Mesh.cc
===================================================================
--- code/branches/network/src/orxonox/tools/Mesh.cc	(revision 1491)
+++ code/branches/network/src/orxonox/tools/Mesh.cc	(revision 1493)
@@ -40,7 +40,7 @@
     unsigned int Mesh::meshCounter_s = 0;
 
-    Mesh::Mesh()
+    Mesh::Mesh() :
+      entity_(0)
     {
-        this->entity_ = 0;
     }
 
