Index: /code/branches/pch/cmake/GenerateToluaBindings.cmake
===================================================================
--- /code/branches/pch/cmake/GenerateToluaBindings.cmake	(revision 3158)
+++ /code/branches/pch/cmake/GenerateToluaBindings.cmake	(revision 3159)
@@ -48,4 +48,8 @@
   )
   SOURCE_GROUP("Tolua" FILES ${_tolua_cxxfile} ${_tolua_hfile})
+  # Disable annoying GCC warnings
+  IF(CMAKE_COMPILER_IS_GNU)
+    SET_SOURCE_FILES_PROPERTIES(${_tolua_cxxfile} PROPERTIES COMPILE_FLAGS "-w")
+  ENDIF()
 
   # Create temporary package file
Index: /code/branches/pch/cmake/LibraryConfig.cmake
===================================================================
--- /code/branches/pch/cmake/LibraryConfig.cmake	(revision 3158)
+++ /code/branches/pch/cmake/LibraryConfig.cmake	(revision 3159)
@@ -172,5 +172,5 @@
 ##### Boost #####
 # Expand the next statement if newer boost versions than 1.36.1 are released
-SET(Boost_ADDITIONAL_VERSIONS 1.37 1.37.0)
+SET(Boost_ADDITIONAL_VERSIONS 1.37 1.37.0 1.38 1.38.0 1.39 1.39.0)
 # MSVC seems to be the only compiler requiring date_time
 IF(MSVC)
Index: /code/branches/pch/src/core/Game.h
===================================================================
--- /code/branches/pch/src/core/Game.h	(revision 3158)
+++ /code/branches/pch/src/core/Game.h	(revision 3159)
@@ -41,4 +41,5 @@
 #include <list>
 #include <map>
+#include <string>
 #include <vector>
 #include <boost/shared_ptr.hpp>
Index: /code/branches/pch/src/core/IRC.h
===================================================================
--- /code/branches/pch/src/core/IRC.h	(revision 3158)
+++ /code/branches/pch/src/core/IRC.h	(revision 3159)
@@ -31,4 +31,6 @@
 
 #include "CorePrereqs.h"
+
+#include <string>
 #include "OrxonoxClass.h"
 
Index: /code/branches/pch/src/core/Template.cc
===================================================================
--- /code/branches/pch/src/core/Template.cc	(revision 3158)
+++ /code/branches/pch/src/core/Template.cc	(revision 3159)
@@ -42,7 +42,8 @@
     Template::Template(BaseObject* creator) : BaseObject(creator)
     {
+        this->xmlelement_ = new TiXmlElement("");
+
         RegisterObject(Template);
 
-        this->xmlelement_ = new TiXmlElement("");
         this->bIsLink_ = false;
         this->bLoadDefaults_ = true;
Index: /code/branches/pch/src/core/XMLPort.h
===================================================================
--- /code/branches/pch/src/core/XMLPort.h	(revision 3158)
+++ /code/branches/pch/src/core/XMLPort.h	(revision 3159)
@@ -51,4 +51,5 @@
 #include "util/MultiType.h"
 #include "util/OrxAssert.h"
+#include "Factory.h"
 #include "Identifier.h"
 #include "Executor.h"
Index: /code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.cc
===================================================================
--- /code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.cc	(revision 3158)
+++ /code/branches/pch/src/orxonox/objects/worldentities/WorldEntity.cc	(revision 3159)
@@ -633,5 +633,5 @@
     void WorldEntity::lookAt(const Vector3& target, TransformSpace::Enum relativeTo, const Vector3& localDirectionVector)
     {
-        Vector3 origin;
+        Vector3 origin(0, 0, 0);
         switch (relativeTo)
         {
@@ -660,5 +660,5 @@
     {
         Quaternion savedOrientation(this->getOrientation());
-        Ogre::Node::TransformSpace ogreRelativeTo;
+        Ogre::Node::TransformSpace ogreRelativeTo = Ogre::Node::TS_LOCAL;
         switch (relativeTo)
         {
@@ -772,8 +772,8 @@
             break;
         case Kinematic:
-            this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT | btCollisionObject::CF_KINEMATIC_OBJECT);
+            this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_STATIC_OBJECT) | btCollisionObject::CF_KINEMATIC_OBJECT);
             break;
         case Static:
-            this->physicalBody_->setCollisionFlags(this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_KINEMATIC_OBJECT | btCollisionObject::CF_STATIC_OBJECT);
+            this->physicalBody_->setCollisionFlags((this->physicalBody_->getCollisionFlags() & !btCollisionObject::CF_KINEMATIC_OBJECT) | btCollisionObject::CF_STATIC_OBJECT);
             break;
         case None:
Index: /code/branches/pch/src/orxonox/objects/worldentities/triggers/Trigger.cc
===================================================================
--- /code/branches/pch/src/orxonox/objects/worldentities/triggers/Trigger.cc	(revision 3158)
+++ /code/branches/pch/src/orxonox/objects/worldentities/triggers/Trigger.cc	(revision 3159)
@@ -237,5 +237,5 @@
   {
     if (( (this->latestState_ & 2) && this->bStayActive_ && (this->remainingActivations_ <= 0))
-     || (!(this->latestState_ & 2))                      && (this->remainingActivations_ == 0))
+     || (!(this->latestState_ & 2)                       && (this->remainingActivations_ == 0)))
       return false;
     else
Index: /code/branches/pch/src/util/ExprParser.cc
===================================================================
--- /code/branches/pch/src/util/ExprParser.cc	(revision 3158)
+++ /code/branches/pch/src/util/ExprParser.cc	(revision 3159)
@@ -247,9 +247,9 @@
             return 0;
         }
-        else if (*reading_stream > 47 && *reading_stream < 59 || *reading_stream == 46)
+        else if ((*reading_stream > 47 && *reading_stream < 59) || *reading_stream == 46)
         {  // number
             value = strtod(reading_stream, const_cast<char**>(&reading_stream));
         }
-        else if (*reading_stream > 64 && *reading_stream < 91 || *reading_stream > 96 && *reading_stream < 123 || *reading_stream == 46)
+        else if ((*reading_stream > 64 && *reading_stream < 91) || (*reading_stream > 96 && *reading_stream < 123) || *reading_stream == 46)
         {  // variable or function
             char* word = new char[256];
@@ -384,5 +384,5 @@
         char* word = str;
         int counter = 0;
-        while (*reading_stream > 47 && *reading_stream < 58 || *reading_stream > 64 && *reading_stream < 91 || *reading_stream > 96 && *reading_stream < 123 || *reading_stream == 46)
+        while ((*reading_stream > 47 && *reading_stream < 58) || (*reading_stream > 64 && *reading_stream < 91) || (*reading_stream > 96 && *reading_stream < 123) || *reading_stream == 46)
         {
             *word++ = *reading_stream++;
Index: /code/branches/pch/src/util/SignalHandler.cc
===================================================================
--- /code/branches/pch/src/util/SignalHandler.cc	(revision 3158)
+++ /code/branches/pch/src/util/SignalHandler.cc	(revision 3159)
@@ -209,10 +209,10 @@
       {
         if (
-          charsFound == 0 && byte == '(' ||
-          charsFound == 1 && byte == 'g' ||
-          charsFound == 2 && byte == 'd' ||
-          charsFound == 3 && byte == 'b' ||
-          charsFound == 4 && byte == ')' ||
-          charsFound == 5 && byte == ' '
+          (charsFound == 0 && byte == '(') ||
+          (charsFound == 1 && byte == 'g') ||
+          (charsFound == 2 && byte == 'd') ||
+          (charsFound == 3 && byte == 'b') ||
+          (charsFound == 4 && byte == ')') ||
+          (charsFound == 5 && byte == ' ')
             )
               charsFound++;
@@ -246,10 +246,10 @@
 
         if (
-          charsFound == 0 && byte == '(' ||
-          charsFound == 1 && byte == 'g' ||
-          charsFound == 2 && byte == 'd' ||
-          charsFound == 3 && byte == 'b' ||
-          charsFound == 4 && byte == ')' ||
-          charsFound == 5 && byte == ' '
+          (charsFound == 0 && byte == '(') ||
+          (charsFound == 1 && byte == 'g') ||
+          (charsFound == 2 && byte == 'd') ||
+          (charsFound == 3 && byte == 'b') ||
+          (charsFound == 4 && byte == ')') ||
+          (charsFound == 5 && byte == ' ')
             )
               charsFound++;
