Index: code/branches/presentation/src/network/NetworkPrereqs.h
===================================================================
--- code/branches/presentation/src/network/NetworkPrereqs.h	(revision 2413)
+++ code/branches/presentation/src/network/NetworkPrereqs.h	(revision 2415)
@@ -73,5 +73,4 @@
   static const unsigned int CLIENTID_UNKNOWN = (unsigned int)-2;
   static const uint32_t OBJECTID_UNKNOWN = static_cast<uint32_t>(-1);
-  static const unsigned int SCHED_PRIORITY_OFFSET = -5;
 
   
Index: code/branches/presentation/src/network/Server.cc
===================================================================
--- code/branches/presentation/src/network/Server.cc	(revision 2413)
+++ code/branches/presentation/src/network/Server.cc	(revision 2415)
@@ -63,6 +63,4 @@
 {
   const unsigned int MAX_FAILURES = 20;
-  const unsigned int NETWORK_FREQUENCY = 25;
-  const float NETWORK_PERIOD = (float)1/NETWORK_FREQUENCY;
 
   /**
Index: code/branches/presentation/src/network/Server.h
===================================================================
--- code/branches/presentation/src/network/Server.h	(revision 2413)
+++ code/branches/presentation/src/network/Server.h	(revision 2415)
@@ -52,4 +52,6 @@
 {
   const int CLIENTID_SERVER = 0;
+  const unsigned int NETWORK_FREQUENCY = 25;
+  const float NETWORK_PERIOD = 1./NETWORK_FREQUENCY;
 
   /**
Index: code/branches/presentation/src/network/TrafficControl.cc
===================================================================
--- code/branches/presentation/src/network/TrafficControl.cc	(revision 2413)
+++ code/branches/presentation/src/network/TrafficControl.cc	(revision 2415)
@@ -36,4 +36,6 @@
 
 namespace orxonox {
+  
+  static const unsigned int SCHED_PRIORITY_OFFSET = -1;
 
   objInfo::objInfo(uint32_t ID, uint32_t creatorID, int32_t curGsID, int32_t diffGsID, uint32_t size, unsigned int prioperm, unsigned int priosched)
@@ -256,8 +258,6 @@
     {
       assert( (*itvec).objSize < 1000);
-//       COUT(0) << "==targetsize==  " << targetsize << endl;
       if ( ( size + (*itvec).objSize ) < targetsize )
       {
-//         COUT(0) << "no cut" << endl;
         size += (*itvec).objSize;//objSize is given in bytes
         ++itvec;
@@ -265,9 +265,6 @@
       else
       {
-        COUT(0) << "cut" << endl;
         clientListPerm_[currentClientID][(*itvec).objID].objValueSched += SCHED_PRIORITY_OFFSET; // NOTE: SCHED_PRIORITY_OFFSET is negative
-//         ittemp = itvec;
         list->erase(itvec++);
-//         itvec = ittemp;
       }
 //       printList(list, currentClientID);
Index: code/branches/presentation/src/network/synchronisable/Synchronisable.cc
===================================================================
--- code/branches/presentation/src/network/synchronisable/Synchronisable.cc	(revision 2413)
+++ code/branches/presentation/src/network/synchronisable/Synchronisable.cc	(revision 2415)
@@ -66,5 +66,4 @@
     RegisterRootObject(Synchronisable);
     static uint32_t idCounter=0;
-    objectFrequency_=1;
     objectMode_=0x1; // by default do not send data to server
     if ( !Host::running() || ( Host::running() && Host::isServer() ) )
@@ -78,5 +77,9 @@
     classID = static_cast<uint32_t>(-1);
 
-
+    // set standard priority
+    this->setPriority( priority::normal );
+
+    
+    // get creator id
 #ifndef NDEBUG
     ObjectList<Synchronisable>::iterator it;
Index: code/branches/presentation/src/network/synchronisable/Synchronisable.h
===================================================================
--- code/branches/presentation/src/network/synchronisable/Synchronisable.h	(revision 2413)
+++ code/branches/presentation/src/network/synchronisable/Synchronisable.h	(revision 2415)
@@ -61,4 +61,14 @@
     };
   }
+  
+  namespace priority{
+    enum prio{
+      very_high   = -30,
+      high        = -15,
+      normal      = 0,
+      low         = 15,
+      very_low    = 30
+    };
+  }
 
   struct _NetworkExport synchronisableHeader{
@@ -101,5 +111,5 @@
     template <class T> void unregisterVariable(T& var);
     void setObjectMode(uint8_t mode);
-    void setObjectPriority(unsigned int freq){ objectFrequency_ = freq; }
+    void setPriority(unsigned int freq){ objectFrequency_ = freq; }
 
 
Index: code/branches/presentation/src/orxonox/gamestates/GSDedicated.cc
===================================================================
--- code/branches/presentation/src/orxonox/gamestates/GSDedicated.cc	(revision 2413)
+++ code/branches/presentation/src/orxonox/gamestates/GSDedicated.cc	(revision 2415)
@@ -35,4 +35,5 @@
 #include "network/Server.h"
 #include "objects/Tickable.h"
+#include "util/Sleep.h"
 
 namespace orxonox
@@ -41,4 +42,5 @@
         : GameState<GSRoot>("dedicated")
         , server_(0)
+        , timeSinceLastUpdate_(0)
     {
     }
@@ -72,7 +74,20 @@
     void GSDedicated::ticked(const Clock& time)
     {
-        GSLevel::ticked(time);
-        server_->tick(time.getDeltaTime());
-        this->tickChild(time);
+//         static float startTime = time.getSecondsPrecise();
+//         static int nrOfTicks = 0;
+        timeSinceLastUpdate_+=time.getDeltaTime();
+        if(timeSinceLastUpdate_>=NETWORK_PERIOD){
+//             ++nrOfTicks;
+//             COUT(0) << "estimated ticks/sec: " << nrOfTicks/(time.getSecondsPrecise()-startTime) << endl;
+            timeSinceLastUpdate_ -= static_cast<unsigned int>( timeSinceLastUpdate_ / NETWORK_PERIOD ) * NETWORK_PERIOD;
+            GSLevel::ticked(time);
+            server_->tick(time.getDeltaTime());
+            this->tickChild(time);
+        }
+        else
+        {
+            usleep( (int)( (NETWORK_PERIOD - timeSinceLastUpdate_)*1000*1000 ) );
+//             COUT(0) << "sleeping for " << (int)( (NETWORK_PERIOD - timeSinceLastUpdate_)*1000*1000 ) << " usec" << endl;
+        }
     }
 }
Index: code/branches/presentation/src/orxonox/gamestates/GSDedicated.h
===================================================================
--- code/branches/presentation/src/orxonox/gamestates/GSDedicated.h	(revision 2413)
+++ code/branches/presentation/src/orxonox/gamestates/GSDedicated.h	(revision 2415)
@@ -49,4 +49,5 @@
 
         Server*      server_;
+        float        timeSinceLastUpdate_;
     };
 }
Index: code/branches/presentation/src/orxonox/objects/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/ControllableEntity.cc	(revision 2413)
+++ code/branches/presentation/src/orxonox/objects/worldentities/ControllableEntity.cc	(revision 2415)
@@ -66,4 +66,6 @@
         this->server_orientation_ = Quaternion::IDENTITY;
         this->client_orientation_ = Quaternion::IDENTITY;
+        
+        this->setPriority( priority::very_high );
 
         this->registerVariables();
Index: code/branches/presentation/src/orxonox/objects/worldentities/Model.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/Model.cc	(revision 2413)
+++ code/branches/presentation/src/orxonox/objects/worldentities/Model.cc	(revision 2415)
@@ -40,9 +40,7 @@
     Model::Model(BaseObject* creator) : PositionableEntity(creator)
     {
-        static unsigned int i=10;
         RegisterObject(Model);
 
         this->registerVariables();
-        this->setObjectPriority(i++);
     }
 
Index: code/branches/presentation/src/orxonox/objects/worldentities/MovableEntity.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/MovableEntity.cc	(revision 2413)
+++ code/branches/presentation/src/orxonox/objects/worldentities/MovableEntity.cc	(revision 2415)
@@ -53,4 +53,6 @@
         this->overwrite_position_ = Vector3::ZERO;
         this->overwrite_orientation_ = Quaternion::IDENTITY;
+        
+        this->setPriority( priority::low );
 
         this->registerVariables();
Index: code/branches/presentation/src/orxonox/objects/worldentities/PositionableEntity.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/PositionableEntity.cc	(revision 2413)
+++ code/branches/presentation/src/orxonox/objects/worldentities/PositionableEntity.cc	(revision 2415)
@@ -38,4 +38,6 @@
     {
         RegisterObject(PositionableEntity);
+        
+        this->setPriority( priority::very_low );
 
         this->registerVariables();
