Index: code/branches/presentation/src/orxonox/objects/GlobalShader.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/GlobalShader.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/GlobalShader.cc	(revision 2501)
@@ -45,8 +45,9 @@
         if (!this->getScene())
             ThrowException(AbortLoading, "Can't create GlobalShader, no scene given.");
-        if (!this->getScene()->getSceneManager())
-            ThrowException(AbortLoading, "Can't create GlobalShader, no scene manager given.");
+//        if (!this->getScene()->getSceneManager())
+//            ThrowException(AbortLoading, "Can't create GlobalShader, no scene manager given.");
 
-        this->shader_.setSceneManager(this->getScene()->getSceneManager());
+        if (this->getScene()->getSceneManager())
+            this->shader_.setSceneManager(this->getScene()->getSceneManager());
 
         this->registerVariables();
Index: code/branches/presentation/src/orxonox/objects/gametypes/Gametype.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/gametypes/Gametype.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/gametypes/Gametype.cc	(revision 2501)
@@ -69,6 +69,4 @@
         this->addBots(this->numberOfBots_);
 
-        setConfigValues();
-
         // load the corresponding score board
         if (Core::showsGraphics() && this->scoreboardTemplate_ != "")
Index: code/branches/presentation/src/orxonox/objects/weaponSystem/Weapon.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/weaponSystem/Weapon.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/weaponSystem/Weapon.cc	(revision 2501)
@@ -50,4 +50,6 @@
         this->magazineLoadingTime_ = 0;
         this->bReloading_ = false;
+
+        this->setObjectMode(0x0);
     }
 
Index: code/branches/presentation/src/orxonox/objects/weaponSystem/projectiles/Projectile.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/weaponSystem/projectiles/Projectile.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/weaponSystem/projectiles/Projectile.cc	(revision 2501)
@@ -54,14 +54,17 @@
 
         // Get notification about collisions
-        this->enableCollisionCallback();
 
-        this->setCollisionType(Kinematic);
+        if (Core::isMaster())
+        {
+            this->enableCollisionCallback();
 
-        SphereCollisionShape* shape = new SphereCollisionShape(this);
-        shape->setRadius(10);
-        this->attachCollisionShape(shape);
+            this->setCollisionType(Kinematic);
 
-        if(Core::isMaster())
-          this->destroyTimer_.setTimer(this->lifetime_, false, this, createExecutor(createFunctor(&Projectile::destroyObject)));
+            SphereCollisionShape* shape = new SphereCollisionShape(this);
+            shape->setRadius(10);
+            this->attachCollisionShape(shape);
+
+            this->destroyTimer_.setTimer(this->lifetime_, false, this, createExecutor(createFunctor(&Projectile::destroyObject)));
+        }
     }
 
Index: code/branches/presentation/src/orxonox/objects/worldentities/WorldEntity.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/WorldEntity.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/worldentities/WorldEntity.cc	(revision 2501)
@@ -545,4 +545,5 @@
         if (type != None && this->collisionType_ == None)
         {
+/*
             // Check whether there was some scaling applied.
             if (!this->node_->getScale().positionEquals(Vector3(1, 1, 1), 0.001))
@@ -551,5 +552,5 @@
                 return;
             }
-
+*/
             // Create new rigid body
             btRigidBody::btRigidBodyConstructionInfo bodyConstructionInfo(0, this, this->collisionShape_->getCollisionShape());
Index: code/branches/presentation/src/orxonox/objects/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/pawns/Pawn.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/worldentities/pawns/Pawn.cc	(revision 2501)
@@ -49,7 +49,7 @@
 
         PawnManager::touch();
-	this->getPickUp().setPlayer(this);
         this->bAlive_ = true;
         this->fire_ = 0x0;
+        this->firehack_ = 0x0;
 
         this->health_ = 0;
@@ -60,4 +60,6 @@
 
         this->spawnparticleduration_ = 3.0f;
+
+        this->getPickUp().setPlayer(this);
 
         if (Core::isMaster())
@@ -108,5 +110,5 @@
         registerVariable(this->health_,        variableDirection::toclient);
         registerVariable(this->initialHealth_, variableDirection::toclient);
-        registerVariable(this->fire_,          variableDirection::toclient);
+        registerVariable(this->fire_,          variableDirection::toserver);
     }
 
@@ -124,5 +126,6 @@
                 this->weaponSystem_->fire(WeaponMode::altFire2);
         }
-        this->fire_ = 0x0;
+        this->fire_ = this->firehack_;
+        this->firehack_ = 0x0;
 
         if (this->health_ <= 0)
@@ -225,5 +228,5 @@
     void Pawn::fire(WeaponMode::Enum fireMode)
     {
-        this->fire_ |= fireMode;
+        this->firehack_ |= fireMode;
     }
 
Index: code/branches/presentation/src/orxonox/objects/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/presentation/src/orxonox/objects/worldentities/pawns/Pawn.h	(revision 2500)
+++ code/branches/presentation/src/orxonox/objects/worldentities/pawns/Pawn.h	(revision 2501)
@@ -116,5 +116,5 @@
             ShipEquipment pickUp;
             bool bAlive_;
-            
+
 
             float health_;
@@ -126,4 +126,5 @@
             WeaponSystem* weaponSystem_;
             unsigned int fire_;
+            unsigned int firehack_;
 
             std::string spawnparticlesource_;
Index: code/branches/presentation/src/orxonox/overlays/notifications/NotificationManager.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/notifications/NotificationManager.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/overlays/notifications/NotificationManager.cc	(revision 2501)
@@ -49,9 +49,9 @@
         //TDO: Destroy the containers
     }
-    
+
     void NotificationManager::tick(float dt)
     {
         bool update = false;
-    
+
         for (std::list<NotificationContainer*>::iterator notification = notifications_s.begin(); notification != notifications_s.end(); ++notification)
         {
@@ -71,30 +71,33 @@
             }
         }
-    
+
         if(update)
             updateQueue();
     }
-    
+
     bool NotificationManager::insertNotification(Notification* notification)
     {
         if(notification == NULL)
             return false;
-            
+
         NotificationContainer* container = new NotificationContainer;
         container->notification = notification;
         container->remainingTime = notification->getDisplayTime();
         notifications_s.push_front(container);
-        
+
         updateQueue();
-        
+
         COUT(4) << "Notification inserted. Title: " << notification->getTitle() << std::endl;
-        
+
         return true;
     }
-    
+
     void NotificationManager::updateQueue(void)
     {
         std::string text = "";
-        
+
+        if (!NotificationQueue::queue_s)
+            return;
+
         int i = NotificationQueue::queue_s->getLength();
         for (std::list<NotificationContainer*>::iterator notification = notifications_s.begin(); notification != notifications_s.end() && i > 0; ++notification)
@@ -104,17 +107,17 @@
             if(container->remainingTime == 0.0)
                 continue;
-            
+
             text = text + "\n\n\n------------\n\n" + clipMessage(container->notification->getTitle()) + "\n\n" + clipMessage(container->notification->getMessage());
         }
-        
+
         NotificationQueue::queue_s->setQueueText(text);
     }
-    
+
     const std::string NotificationManager::clipMessage(const std::string & str)
     {
-    
+
         std::string message = str;
         unsigned int i = 0;
-        
+
         unsigned int found = message.find("\\n", i);
         while(found != std::string::npos)
@@ -124,5 +127,5 @@
             found = message.find("\\n", i);
         }
-    
+
         std::string clippedMessage = "";
         int wordLength = 0;
@@ -136,5 +139,5 @@
                 wordLength++;
             }
-            
+
             if(wordLength <= widthLeft)
             {
@@ -165,5 +168,5 @@
             }
         }
-        
+
         return clippedMessage;
     }
Index: code/branches/presentation/src/orxonox/overlays/notifications/NotificationQueue.cc
===================================================================
--- code/branches/presentation/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 2500)
+++ code/branches/presentation/src/orxonox/overlays/notifications/NotificationQueue.cc	(revision 2501)
@@ -56,10 +56,8 @@
         this->length_ = 3;
         this->width_ = 50;
-COUT(0) << "added notification queue" << std::endl;
     }
 
     NotificationQueue::~NotificationQueue()
     {
-COUT(0) << "deleted notification queue" << std::endl;
 
     }
@@ -102,5 +100,4 @@
     void NotificationQueue::setQueueText(const std::string & text)
     {
-COUT(0) << "queue: " << text << std::endl;
         this->queueText_ = text;
     }
@@ -110,4 +107,3 @@
         this->text_->setCaption(queueText_);
     }
-
 }
Index: code/branches/presentation/src/orxonox/overlays/notifications/NotificationQueue.h
===================================================================
--- code/branches/presentation/src/orxonox/overlays/notifications/NotificationQueue.h	(revision 2500)
+++ code/branches/presentation/src/orxonox/overlays/notifications/NotificationQueue.h	(revision 2501)
@@ -42,5 +42,5 @@
     /**
     @brief
-        
+
     @author
         Damian 'Mozork' Frick
@@ -51,27 +51,27 @@
         NotificationQueue(BaseObject* creator);
         virtual ~NotificationQueue();
-        
+
         static NotificationQueue* queue_s; //TDO Singleton? oder im level.
-        
+
         virtual void XMLPort(Element& xmlElement, XMLPort::Mode mode);
-        
+
         virtual void tick(float dt);
-        
+
         void update(void);
-        
+
         int getLength(void) const
                 { return this->length_; }
         int getWidth(void) const
                 { return this->width_; }
-        
+
         void setQueueText(const std::string & text);
         bool setLength(int length);
         bool setWidth(int width);
-        
+
     private:
         Ogre::UTFString queueText_;
         int length_;
         int width_;
-    
+
     };
 
