Index: code/trunk/src/libraries/tools/BillboardSet.cc
===================================================================
--- code/trunk/src/libraries/tools/BillboardSet.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/BillboardSet.cc	(revision 6417)
@@ -38,5 +38,4 @@
 #include "util/Convert.h"
 #include "util/Math.h"
-#include "util/StringUtils.h"
 #include "core/GameMode.h"
 
@@ -81,5 +80,5 @@
         catch (...)
         {
-            COUT(1) << "Error: Couln't load billboard \"" << file << "\"" << std::endl;
+            COUT(1) << "Error: Couln't load billboard \"" << file << '"' << std::endl;
             this->billboardSet_ = 0;
         }
@@ -104,5 +103,5 @@
         catch (...)
         {
-            COUT(1) << "Error: Couln't load billboard \"" << file << "\"" << std::endl;
+            COUT(1) << "Error: Couln't load billboard \"" << file << '"' << std::endl;
             this->billboardSet_ = 0;
         }
Index: code/trunk/src/libraries/tools/CMakeLists.txt
===================================================================
--- code/trunk/src/libraries/tools/CMakeLists.txt	(revision 6105)
+++ code/trunk/src/libraries/tools/CMakeLists.txt	(revision 6417)
@@ -23,4 +23,5 @@
   LINK_LIBRARIES
     core
+    network
   SOURCE_FILES ${TOOLS_SRC_FILES}
 )
Index: code/trunk/src/libraries/tools/Mesh.cc
===================================================================
--- code/trunk/src/libraries/tools/Mesh.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/Mesh.cc	(revision 6417)
@@ -36,5 +36,4 @@
 
 #include "util/Convert.h"
-#include "util/StringUtils.h"
 #include "core/GameMode.h"
 
@@ -84,5 +83,5 @@
             catch (...)
             {
-                COUT(1) << "Error: Couln't load mesh \"" << meshsource << "\"" << std::endl;
+                COUT(1) << "Error: Couln't load mesh \"" << meshsource << '"' << std::endl;
                 this->entity_ = 0;
             }
Index: code/trunk/src/libraries/tools/ParticleInterface.cc
===================================================================
--- code/trunk/src/libraries/tools/ParticleInterface.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/ParticleInterface.cc	(revision 6417)
@@ -64,4 +64,8 @@
         this->bAllowedByLOD_ = true;
         this->speedFactor_ = 1.0f;
+
+        this->setDetailLevel(static_cast<unsigned int>(detaillevel));
+
+        this->setConfigValues();
 
         if (GameMode::showsGraphics())
@@ -74,10 +78,8 @@
             catch (...)
             {
-                COUT(1) << "Error: Couln't load particle system \"" << templateName << "\"" << std::endl;
+                COUT(1) << "Error: Couln't load particle system \"" << templateName << '"' << std::endl;
                 this->particleSystem_ = 0;
             }
         }
-
-        this->setDetailLevel(static_cast<unsigned int>(detaillevel));
     }
 
Index: code/trunk/src/libraries/tools/ResourceLocation.cc
===================================================================
--- code/trunk/src/libraries/tools/ResourceLocation.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/ResourceLocation.cc	(revision 6417)
@@ -92,5 +92,5 @@
     {
         // Remove from Ogre paths
-        resourceGroup_.erase();
+        resourceGroup_.clear();
         try
         {
Index: code/trunk/src/libraries/tools/Shader.cc
===================================================================
--- code/trunk/src/libraries/tools/Shader.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/Shader.cc	(revision 6417)
@@ -57,6 +57,4 @@
         this->bLoadCompositor_ = GameMode::showsGraphics();
         this->bViewportInitialized_ = false;
-        this->compositor_ = "";
-        this->oldcompositor_ = "";
 
         if (this->bLoadCompositor_ && Ogre::Root::getSingletonPtr())
@@ -79,6 +77,5 @@
     Shader::~Shader()
     {
-
-        if (this->bLoadCompositor_ && this->compositorInstance_)
+        if (this->compositorInstance_ && this->bLoadCompositor_)
         {
             Ogre::Viewport* viewport = GraphicsManager::getInstance().getViewport();
@@ -112,10 +109,10 @@
             Ogre::Viewport* viewport = GraphicsManager::getInstance().getViewport();
             assert(viewport);
-            if (this->oldcompositor_ != "")
+            if (!this->oldcompositor_.empty())
             {
                 Ogre::CompositorManager::getSingleton().removeCompositor(viewport, this->oldcompositor_);
                 this->compositorInstance_ = 0;
             }
-            if (this->compositor_ != "")
+            if (!this->compositor_.empty())
             {
                 this->compositorInstance_ = Ogre::CompositorManager::getSingleton().addCompositor(viewport, this->compositor_);
@@ -299,5 +296,5 @@
                         continue;
 
-                    if (pass_pointer->getFragmentProgramName() != "")
+                    if (!pass_pointer->getFragmentProgramName().empty())
                     {
                         Ogre::GpuProgramParameters* parameter_pointer = pass_pointer->getFragmentProgramParameters().get();
Index: code/trunk/src/libraries/tools/TextureGenerator.cc
===================================================================
--- code/trunk/src/libraries/tools/TextureGenerator.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/TextureGenerator.cc	(revision 6417)
@@ -72,5 +72,5 @@
         if (it == colourMap.end())
         {
-            std::string materialName = textureName + "_Material_" + multi_cast<std::string>(materialCount_s++);
+            const std::string& materialName = textureName + "_Material_" + multi_cast<std::string>(materialCount_s++);
             Ogre::MaterialPtr material = static_cast<Ogre::MaterialPtr>(Ogre::MaterialManager::getSingleton().create(materialName, "General"));
             material->getTechnique(0)->getPass(0)->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
@@ -82,5 +82,5 @@
         else
         {
-            return (*it).second;
+            return it->second;
         }
     }
Index: code/trunk/src/libraries/tools/Timer.cc
===================================================================
--- code/trunk/src/libraries/tools/Timer.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/Timer.cc	(revision 6417)
@@ -112,5 +112,5 @@
         this->deleteExecutor();
     }
-    
+
     /**
         @brief Initializes the Timer
Index: code/trunk/src/libraries/tools/Timer.h
===================================================================
--- code/trunk/src/libraries/tools/Timer.h	(revision 6105)
+++ code/trunk/src/libraries/tools/Timer.h	(revision 6417)
@@ -140,5 +140,5 @@
         private:
             void init();
-        
+
             Executor* executor_;  //!< The executor of the function that should be called when the time expires
 
Index: code/trunk/src/libraries/tools/interfaces/TimeFactorListener.h
===================================================================
--- code/trunk/src/libraries/tools/interfaces/TimeFactorListener.h	(revision 6105)
+++ code/trunk/src/libraries/tools/interfaces/TimeFactorListener.h	(revision 6417)
@@ -37,14 +37,14 @@
     class _ToolsExport TimeFactorListener : virtual public OrxonoxClass
     {
-        friend class GSRoot;
-
         public:
             TimeFactorListener();
             virtual ~TimeFactorListener() {}
 
+            static void setTimeFactor( float factor );
+            static void setTimeFactorInternal( float factor );
+            static inline float getTimeFactor(){ return TimeFactorListener::timefactor_s; }
+
         protected:
             virtual void changedTimeFactor(float factor_new, float factor_old) {}
-            inline float getTimeFactor() const
-                { return TimeFactorListener::timefactor_s; }
 
         private:
Index: code/trunk/src/libraries/tools/interfaces/ToolsInterfaceCompilation.cc
===================================================================
--- code/trunk/src/libraries/tools/interfaces/ToolsInterfaceCompilation.cc	(revision 6105)
+++ code/trunk/src/libraries/tools/interfaces/ToolsInterfaceCompilation.cc	(revision 6417)
@@ -37,4 +37,6 @@
 
 #include "core/CoreIncludes.h"
+#include "core/GameMode.h"
+#include "network/NetworkFunction.h"
 
 namespace orxonox
@@ -43,4 +45,6 @@
     // TimeFactorListener
     //----------------------------
+    registerStaticNetworkFunction( &TimeFactorListener::setTimeFactorInternal );
+
     float TimeFactorListener::timefactor_s = 1.0f;
 
@@ -48,4 +52,19 @@
     {
         RegisterRootObject(TimeFactorListener);
+    }
+
+    /*static*/ void TimeFactorListener::setTimeFactor( float factor )
+    {
+        if ( !GameMode::isStandalone() )
+            callStaticNetworkFunction( &TimeFactorListener::setTimeFactorInternal, CLIENTID_UNKNOWN, factor );
+        TimeFactorListener::setTimeFactorInternal(factor);
+    }
+
+    /*static*/ void TimeFactorListener::setTimeFactorInternal( float factor )
+    {
+        float oldFactor = TimeFactorListener::timefactor_s;
+        TimeFactorListener::timefactor_s = factor;
+        for (ObjectList<TimeFactorListener>::iterator it = ObjectList<TimeFactorListener>::begin(); it != ObjectList<TimeFactorListener>::end(); ++it)
+            it->changedTimeFactor(factor, oldFactor);
     }
 
