Index: /code/branches/campaignHS15/data/levels/AITest.oxw
===================================================================
--- /code/branches/campaignHS15/data/levels/AITest.oxw	(revision 10839)
+++ /code/branches/campaignHS15/data/levels/AITest.oxw	(revision 10840)
@@ -66,5 +66,5 @@
       </templates>
       <controller>
-        <WingmanController >
+        <WingmanController team=0>
         </WingmanController>
       </controller>
@@ -75,5 +75,5 @@
       </templates>
       <controller>
-        <WingmanController >
+        <WingmanController team=0>
         </WingmanController>
       </controller>
@@ -84,5 +84,5 @@
       </templates>
       <controller>
-        <SectionController >
+        <SectionController team=0>
         </SectionController>
       </controller>
@@ -93,5 +93,5 @@
       </templates>
       <controller>
-        <SectionController>
+        <SectionController team=0>
         </SectionController>
       </controller>
Index: /code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc	(revision 10839)
+++ /code/branches/campaignHS15/src/orxonox/controllers/CommonController.cc	(revision 10840)
@@ -80,12 +80,12 @@
     void CommonController::setProtectXML( std::string val )
     {
-        for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
-        {
-            if ((*itP)->getName() == val)
-            {
-                this->setProtect (static_cast<ControllableEntity*>(*itP));
-            }
-        }
-    }
+        this->protectName_ = val;
+        
+    }
+    void CommonController::tick(float dt)
+    {
+
+    }
+
     std::string CommonController::getProtectXML ()
     {
@@ -202,4 +202,6 @@
         else if (action == Action::PROTECT)
         {
+            if (target)
+                this->setProtect (target);
         }
     }
@@ -211,8 +213,5 @@
             this->setTargetPosition (target);
         }
-        else if (action == Action::PROTECT)
-        {
-
-        }
+        
     }
     void CommonController::setAction (Action::Value action, const Vector3& target,  const Quaternion& orient )
@@ -224,8 +223,5 @@
             this->setTargetOrientation (orient);
         }
-        else if (action == Action::PROTECT)
-        {
-            
-        }
+       
     }
     void CommonController::setClosestTarget()
Index: /code/branches/campaignHS15/src/orxonox/controllers/CommonController.h
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/CommonController.h	(revision 10839)
+++ /code/branches/campaignHS15/src/orxonox/controllers/CommonController.h	(revision 10840)
@@ -77,4 +77,6 @@
             CommonController(Context* context);
             virtual ~CommonController();
+
+            virtual void tick(float dt); 
 
             //----[XML data]----
@@ -194,4 +196,5 @@
                 FormationMode::Value formationMode_;
                 Rank::Value rank_;
+                std::string protectName_;
                 Action::Value action_;
             //----[/"Private" variables]----               
Index: /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc	(revision 10839)
+++ /code/branches/campaignHS15/src/orxonox/controllers/DivisionController.cc	(revision 10840)
@@ -133,8 +133,33 @@
         else if (this->action_ == Action::PROTECT)
         {
-            if (this->getProtect())
-            {
-                orxout(internal_error) << "PROTECT FOUND" << endl;
-            }
+            if (!this->getProtect())
+            {
+                for (ObjectList<Pawn>::iterator itP = ObjectList<Pawn>::begin(); itP; ++itP)
+                {
+                    if ((*itP)->getName() == this->protectName_)
+                    {
+                        this->setProtect (static_cast<ControllableEntity*>(*itP));
+                    }
+                }
+            }
+            else
+            {
+               /* if (this->myWingman_)
+                    this->myWingman_->setAction (Action::PROTECT, this->getProtect());
+                if (this->myFollower_)
+                    this->myFollower_->setAction (Action::PROTECT, this->getProtect());
+                */
+                Vector3* targetRelativePosition;
+                    
+                targetRelativePosition = new Vector3 (0, 0, 500);  
+     
+                Vector3 targetAbsolutePosition = ((this->getProtect()->getWorldPosition()) + 
+                    (this->getProtect()->getWorldOrientation()* (*targetRelativePosition)));
+                this->setTargetPosition(targetAbsolutePosition);
+                
+                this->setTargetPositionOfWingman();
+                this->setTargetPositionOfFollower();
+            }            
+
         }
 
Index: /code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc
===================================================================
--- /code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc	(revision 10839)
+++ /code/branches/campaignHS15/src/orxonox/controllers/SectionController.cc	(revision 10840)
@@ -145,4 +145,8 @@
         else if (this->action_ == Action::PROTECT)
         {
+           /* if (this->myWingman_)
+                this->myWingman_->setAction (Action::PROTECT, this->getProtect());
+*/
+            this->setTargetPositionOfWingman();
 
         }
