Index: /code/branches/core6/src/libraries/core/CorePrereqs.h
===================================================================
--- /code/branches/core6/src/libraries/core/CorePrereqs.h	(revision 9560)
+++ /code/branches/core6/src/libraries/core/CorePrereqs.h	(revision 9561)
@@ -141,4 +141,5 @@
     class ConfigFileSection;
     class ConfigValueContainer;
+    class Context;
     class Core;
     class DestructionListener;
Index: /code/branches/core6/src/libraries/core/OrxonoxClass.cc
===================================================================
--- /code/branches/core6/src/libraries/core/OrxonoxClass.cc	(revision 9560)
+++ /code/branches/core6/src/libraries/core/OrxonoxClass.cc	(revision 9561)
@@ -36,4 +36,5 @@
 #include <cassert>
 #include "object/MetaObjectList.h"
+#include "object/Context.h"
 #include "Identifier.h"
 
@@ -43,6 +44,10 @@
         @brief Constructor: Sets the default values.
     */
-    OrxonoxClass::OrxonoxClass()
+    OrxonoxClass::OrxonoxClass(Context* context) : context_(context)
     {
+        //assert(context);
+        if (!this->context_)
+            this->context_ = Context::getRootContext();
+
         this->identifier_ = 0;
         this->parents_ = 0;
Index: /code/branches/core6/src/libraries/core/OrxonoxClass.h
===================================================================
--- /code/branches/core6/src/libraries/core/OrxonoxClass.h	(revision 9560)
+++ /code/branches/core6/src/libraries/core/OrxonoxClass.h	(revision 9561)
@@ -70,5 +70,5 @@
 
         public:
-            OrxonoxClass();
+            OrxonoxClass(Context* context = NULL);
             virtual ~OrxonoxClass();
 
@@ -81,4 +81,7 @@
             /// Returns the Identifier of the object.
             inline Identifier* getIdentifier() const { return this->identifier_; }
+
+            /// Returns the object's Context.
+            inline Context* getContext() const { return this->context_; }
 
             bool isA(const Identifier* identifier);
@@ -167,4 +170,5 @@
 
             Identifier* identifier_;                                //!< The Identifier of the object
+            Context* context_;                                      //!< The object's context
             std::set<const Identifier*>* parents_;                  //!< List of all parents of the object
             MetaObjectList* metaList_;                              //!< MetaObjectList, containing all ObjectLists and ObjectListElements the object is registered in
Index: /code/branches/core6/src/libraries/core/object/CMakeLists.txt
===================================================================
--- /code/branches/core6/src/libraries/core/object/CMakeLists.txt	(revision 9560)
+++ /code/branches/core6/src/libraries/core/object/CMakeLists.txt	(revision 9561)
@@ -1,3 +1,4 @@
 ADD_SOURCE_FILES(CORE_SRC_FILES
+  Context.cc
   MetaObjectList.cc
   ObjectListBase.cc
Index: /code/branches/core6/src/libraries/core/object/Context.cc
===================================================================
--- /code/branches/core6/src/libraries/core/object/Context.cc	(revision 9561)
+++ /code/branches/core6/src/libraries/core/object/Context.cc	(revision 9561)
@@ -0,0 +1,53 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @brief Implementation of Context.
+*/
+
+#include "Context.h"
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+    Context::Context(Context* context) : OrxonoxClass(this), parentContext_(context)
+    {
+        RegisterRootObject(Context);
+    }
+
+    Context::~Context()
+    {
+    }
+
+    /*static*/ Context* Context::getRootContext()
+    {
+        static Context rootContext(NULL);
+        return &rootContext;
+    }
+}
Index: /code/branches/core6/src/libraries/core/object/Context.h
===================================================================
--- /code/branches/core6/src/libraries/core/object/Context.h	(revision 9561)
+++ /code/branches/core6/src/libraries/core/object/Context.h	(revision 9561)
@@ -0,0 +1,59 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Fabian 'x3n' Landau
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+    @file
+    @ingroup Object
+*/
+
+#ifndef _Context_H__
+#define _Context_H__
+
+#include "core/CorePrereqs.h"
+
+#include "core/OrxonoxClass.h"
+
+namespace orxonox
+{
+    class _CoreExport Context : virtual public OrxonoxClass
+    {
+        public:
+            Context(Context* context);
+            virtual ~Context();
+
+            inline Context* getParentContext() const
+                { return this->parentContext_; }
+
+            static Context* getRootContext();
+
+        private:
+            Context* parentContext_;
+    };
+}
+
+#endif /* _Context_H__ */
