Index: code/branches/presentationFS16/src/orxonox/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/worldentities/ControllableEntity.cc	(revision 11193)
+++ code/branches/presentationFS16/src/orxonox/worldentities/ControllableEntity.cc	(revision 11208)
@@ -49,5 +49,5 @@
     RegisterClass(ControllableEntity);
 
-    registerMemberNetworkFunction( ControllableEntity, fire );
+    registerMemberNetworkFunction( ControllableEntity, push );
     registerMemberNetworkFunction( ControllableEntity, setTargetInternal );
 
@@ -299,13 +299,25 @@
     }
 
-    void ControllableEntity::fire(unsigned int firemode)
+    void ControllableEntity::push(unsigned int firemode)
     {
         if(GameMode::isMaster())
         {
-            this->fired(firemode);
+            this->pushed(firemode);
         }
         else
         {
-            callMemberNetworkFunction(&ControllableEntity::fire, this->getObjectID(), 0, firemode);
+            callMemberNetworkFunction(&ControllableEntity::push, this->getObjectID(), 0, firemode);
+        }
+    }
+
+    void ControllableEntity::release(unsigned int firemode)
+    {
+        if(GameMode::isMaster())
+        {
+            this->released(firemode);
+        }
+        else
+        {
+            callMemberNetworkFunction(&ControllableEntity::release, this->getObjectID(), 0, firemode);
         }
     }
Index: code/branches/presentationFS16/src/orxonox/worldentities/ControllableEntity.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/worldentities/ControllableEntity.h	(revision 11193)
+++ code/branches/presentationFS16/src/orxonox/worldentities/ControllableEntity.h	(revision 11208)
@@ -96,6 +96,8 @@
                 { this->rotateRoll(Vector2(value, 0)); }
 
-            void fire(unsigned int firemode);
-            virtual void fired(unsigned int firemode) {}
+            void push(unsigned int firemode);
+            void release(unsigned int firemode);
+            virtual void pushed(unsigned int firemode) {}
+            virtual void released(unsigned int firemode) {}
             virtual void reload() {}
 
Index: code/branches/presentationFS16/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11193)
+++ code/branches/presentationFS16/src/orxonox/worldentities/pawns/Pawn.cc	(revision 11208)
@@ -432,8 +432,14 @@
     */
 
-    void Pawn::fired(unsigned int firemode)
-    {
-        if (this->weaponSystem_)
-            this->weaponSystem_->fire(firemode);
+    void Pawn::pushed(unsigned int firemode)
+    {
+        if (this->weaponSystem_)
+            this->weaponSystem_->push(firemode);
+    }
+
+    void Pawn::released(unsigned int firemode)
+    {
+        if (this->weaponSystem_)
+            this->weaponSystem_->release(firemode);
     }
 
Index: code/branches/presentationFS16/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/worldentities/pawns/Pawn.h	(revision 11193)
+++ code/branches/presentationFS16/src/orxonox/worldentities/pawns/Pawn.h	(revision 11208)
@@ -157,5 +157,6 @@
             virtual void kill();
 
-            virtual void fired(unsigned int firemode) override;
+            virtual void pushed(unsigned int firemode) override;
+            virtual void released(unsigned int firemode) override;
             virtual void postSpawn();
 
Index: code/branches/presentationFS16/src/orxonox/worldentities/pawns/Spectator.cc
===================================================================
--- code/branches/presentationFS16/src/orxonox/worldentities/pawns/Spectator.cc	(revision 11193)
+++ code/branches/presentationFS16/src/orxonox/worldentities/pawns/Spectator.cc	(revision 11208)
@@ -42,5 +42,5 @@
 namespace orxonox
 {
-    extern const std::string __CC_fire_name;
+    extern const std::string __CC_push_name;
     extern const std::string __CC_suicide_name;
 
@@ -162,5 +162,5 @@
 
         // change keybind mode of fire command to OnPress to avoid firing after respawn
-        ModifyConsoleCommand(__CC_fire_name).keybindMode(KeybindMode::OnPress);
+        ModifyConsoleCommand(__CC_push_name).keybindMode(KeybindMode::OnPress);
 
         // disable suicide
@@ -177,5 +177,5 @@
         // change fire command to a helper function and change keybind mode to OnPress
         // as soon as the player releases and presses the button again, the helper function will be called which changes the keybind mode back to OnHold
-        ModifyConsoleCommand(__CC_fire_name).pushFunction(&Spectator::resetFireCommand).keybindMode(KeybindMode::OnPress);
+        ModifyConsoleCommand(__CC_push_name).pushFunction(&Spectator::resetFireCommand).keybindMode(KeybindMode::OnPress);
 
         // enable suicide
@@ -188,7 +188,7 @@
     void Spectator::resetFireCommand(unsigned int firemode)
     {
-        ModifyConsoleCommand(__CC_fire_name).popFunction().keybindMode(KeybindMode::OnHold); // pop this helper function and change keybind mode
-
-        CommandExecutor::execute(__CC_fire_name + " " + multi_cast<std::string>(firemode)); // call the fire command again, this time with the real function
+        ModifyConsoleCommand(__CC_push_name).popFunction().keybindMode(KeybindMode::OnHold); // pop this helper function and change keybind mode
+
+        CommandExecutor::execute(__CC_push_name + " " + multi_cast<std::string>(firemode)); // call the fire command again, this time with the real function
     }
 
@@ -229,5 +229,5 @@
     }
 
-    void Spectator::fired(unsigned int firemode)
+    void Spectator::pushed(unsigned int firemode)
     {
         if (this->getPlayer())
Index: code/branches/presentationFS16/src/orxonox/worldentities/pawns/Spectator.h
===================================================================
--- code/branches/presentationFS16/src/orxonox/worldentities/pawns/Spectator.h	(revision 11193)
+++ code/branches/presentationFS16/src/orxonox/worldentities/pawns/Spectator.h	(revision 11208)
@@ -54,5 +54,5 @@
             virtual void rotateRoll(const Vector2& value);
 
-            virtual void fired(unsigned int firemode);
+            virtual void pushed(unsigned int firemode);
             virtual void greet();
             virtual void mouseLook() {}
