Index: code/branches/presentation/src/util/Exception.h
===================================================================
--- code/branches/presentation/src/util/Exception.h	(revision 2420)
+++ code/branches/presentation/src/util/Exception.h	(revision 2459)
@@ -82,14 +82,9 @@
                   const char* filename, const char* functionName)                   \
                   : Exception(description, lineNumber, filename, functionName)      \
-        {                                                                           \
-            /* Let the catcher decide whether to display the message below level 4  \
-               Note: Don't place this code in Exception c'tor because getTypeName() \
-               is still pure virtual at that time. */                               \
-            COUT(4) << this->getFullDescription() << std::endl;                     \
-        }                                                                           \
+        { }                                                                         \
                                                                                     \
         ExceptionName##Exception(const std::string& description)                    \
                   : Exception(description)                                          \
-        { COUT(4) << this->getFullDescription() << std::endl; }                     \
+        { }                                                                         \
                                                                                     \
         ~ExceptionName##Exception() throw() { }                                     \
@@ -103,4 +98,6 @@
     CREATE_ORXONOX_EXCEPTION(FileNotFound);
     CREATE_ORXONOX_EXCEPTION(Argument);
+    CREATE_ORXONOX_EXCEPTION(PhysicsViolation);
+    CREATE_ORXONOX_EXCEPTION(ParseError);
     CREATE_ORXONOX_EXCEPTION(PluginsNotFound);
     CREATE_ORXONOX_EXCEPTION(InitialisationFailed);
@@ -111,6 +108,18 @@
 }
 
-#define ThrowException(Type, Description) \
-    throw Type##Exception(Description, __LINE__, __FILE__, __FUNCTIONNAME__)
+    /**
+    @brief
+        Helper function that creates an exception, displays the message, but doesn't throw it.
+    */
+    template <class T>
+    inline const T& InternalHandleException(const T& exception)
+    {
+        // let the catcher decide whether to display the message below level 4
+        COUT(4) << exception.getFullDescription() << std::endl;
+        return exception;
+    }
+
+#define ThrowException(type, description) \
+    throw InternalHandleException(type##Exception(description, __LINE__, __FILE__, __FUNCTIONNAME__))
 
     // define an assert macro that can display a message
Index: code/branches/presentation/src/util/Integers.h
===================================================================
--- code/branches/presentation/src/util/Integers.h	(revision 2420)
+++ code/branches/presentation/src/util/Integers.h	(revision 2459)
@@ -49,6 +49,6 @@
 typedef unsigned __int32  uint32_t;
 typedef unsigned __int64  uint64_t;
-#elif ORXONOX_COMPILER == ORXONOX_COMPILER_GCC
-# include "inttypes.h"
+#else
+# include <inttypes.h>
 #endif
 
Index: code/branches/presentation/src/util/Math.h
===================================================================
--- code/branches/presentation/src/util/Math.h	(revision 2420)
+++ code/branches/presentation/src/util/Math.h	(revision 2459)
@@ -63,13 +63,31 @@
 namespace orxonox
 {
-    typedef Ogre::Radian Radian;
-    typedef Ogre::Degree Degree;
-    typedef Ogre::Vector2 Vector2;
-    typedef Ogre::Vector3 Vector3;
-    typedef Ogre::Vector4 Vector4;
-    typedef Ogre::Matrix3 Matrix3;
-    typedef Ogre::Matrix4 Matrix4;
-    typedef Ogre::Quaternion Quaternion;
-    typedef Ogre::ColourValue ColourValue;
+    using Ogre::Radian;
+    using Ogre::Degree;
+    using Ogre::Vector2;
+    using Ogre::Vector3;
+    using Ogre::Vector4;
+    using Ogre::Matrix3;
+    using Ogre::Matrix4;
+    using Ogre::Quaternion;
+    using Ogre::ColourValue;
+
+    // Also define our own transform space enum
+    namespace TransformSpace
+    {
+        /**
+        @brief
+            Enumeration denoting the spaces which a transform can be relative to.
+        */
+        enum Space
+        {
+            /// Transform is relative to the local space
+            Local,
+            /// Transform is relative to the space of the parent node
+            Parent,
+            /// Transform is relative to world space
+            World
+        };
+    }
 
     _UtilExport std::ostream& operator<<(std::ostream& out, const orxonox::Radian& radian);
@@ -174,6 +192,8 @@
     inline T zeroise()
     {
-        BOOST_STATIC_ASSERT(sizeof(T) == 0);
-        return T();
+        // Default, raise a compiler error without including large boost header cascade.
+        T temp();
+        *********temp; // If you reach this code, you abused zeroise()!
+        return temp;
     }
 
