Index: code/trunk/src/libraries/core/ClassTreeMask.cc
===================================================================
--- code/trunk/src/libraries/core/ClassTreeMask.cc	(revision 7266)
+++ code/trunk/src/libraries/core/ClassTreeMask.cc	(revision 7268)
@@ -526,5 +526,5 @@
         @return A reference to the mask itself
     */
-    const ClassTreeMask& ClassTreeMask::operator=(const ClassTreeMask& other)
+    ClassTreeMask& ClassTreeMask::operator=(const ClassTreeMask& other)
     {
         // Make a copy to avoid troubles with self-assignments (like A = A).
@@ -843,5 +843,5 @@
         @param mask The mask
     */
-    const ClassTreeMaskObjectIterator& ClassTreeMaskObjectIterator::operator=(const ClassTreeMask& mask)
+    ClassTreeMaskObjectIterator& ClassTreeMaskObjectIterator::operator=(const ClassTreeMask& mask)
     {
         // Clear everything, use a cleaned copy of the mask
Index: code/trunk/src/libraries/core/ClassTreeMask.h
===================================================================
--- code/trunk/src/libraries/core/ClassTreeMask.h	(revision 7266)
+++ code/trunk/src/libraries/core/ClassTreeMask.h	(revision 7268)
@@ -194,5 +194,5 @@
             inline BaseObject*          end()   const { return 0; }
 
-            const ClassTreeMask& operator=(const ClassTreeMask& other);
+            ClassTreeMask& operator=(const ClassTreeMask& other);
 
             bool operator==(const ClassTreeMask& other) const;
@@ -260,5 +260,5 @@
             inline ClassTreeMaskObjectIterator(const ClassTreeMask& mask) { (*this) = mask; }
 
-            const ClassTreeMaskObjectIterator& operator=(const ClassTreeMask& mask);
+            ClassTreeMaskObjectIterator& operator=(const ClassTreeMask& mask);
 
             const ClassTreeMaskObjectIterator& operator++();
Index: code/trunk/src/libraries/core/Iterator.h
===================================================================
--- code/trunk/src/libraries/core/Iterator.h	(revision 7266)
+++ code/trunk/src/libraries/core/Iterator.h	(revision 7268)
@@ -124,5 +124,5 @@
                 @param exp The exported element
             */
-            inline const Iterator<T>& operator=(const ObjectListBase::Export& exp)
+            inline Iterator<T>& operator=(const ObjectListBase::Export& exp)
             {
                 if (this->list_)
@@ -140,5 +140,5 @@
                 @param other The other Iterator
             */
-            inline const Iterator<T>& operator=(const Iterator<T>& other)
+            inline Iterator<T>& operator=(const Iterator<T>& other)
             {
                 if (this->list_)
@@ -157,5 +157,5 @@
             */
             template <class O>
-            inline const Iterator<T>& operator=(ObjectListElement<O>* element)
+            inline Iterator<T>& operator=(ObjectListElement<O>* element)
             {
                 if (this->list_)
@@ -174,5 +174,5 @@
             */
             template <class O>
-            inline const Iterator<T>& operator=(const ObjectListIterator<O>& other)
+            inline Iterator<T>& operator=(const ObjectListIterator<O>& other)
             {
                 if (this->list_)
Index: code/trunk/src/libraries/core/ObjectListIterator.h
===================================================================
--- code/trunk/src/libraries/core/ObjectListIterator.h	(revision 7266)
+++ code/trunk/src/libraries/core/ObjectListIterator.h	(revision 7268)
@@ -101,5 +101,5 @@
                 @param element The ObjectListElement
             */
-            inline const ObjectListIterator<T>& operator=(ObjectListElement<T>* element)
+            inline ObjectListIterator<T>& operator=(ObjectListElement<T>* element)
             {
                 this->element_ = element;
@@ -111,5 +111,5 @@
                 @param element The other ObjectListIterator
             */
-            inline const ObjectListIterator<T>& operator=(const ObjectListIterator<T>& other)
+            inline ObjectListIterator<T>& operator=(const ObjectListIterator<T>& other)
             {
                 this->element_ = other.element_;
Index: code/trunk/src/libraries/core/SmartPtr.h
===================================================================
--- code/trunk/src/libraries/core/SmartPtr.h	(revision 7266)
+++ code/trunk/src/libraries/core/SmartPtr.h	(revision 7268)
@@ -36,4 +36,5 @@
 #include <cassert>
 
+#include "Identifier.h"
 #include "OrxonoxClass.h"
 #include "WeakPtr.h"
@@ -85,5 +86,5 @@
             }
 
-            inline const SmartPtr& operator=(int)
+            inline SmartPtr& operator=(int)
             {
                 SmartPtr(0).swap(*this);
@@ -91,5 +92,5 @@
             }
 
-            inline const SmartPtr& operator=(T* pointer)
+            inline SmartPtr& operator=(T* pointer)
             {
                 SmartPtr(pointer).swap(*this);
@@ -97,5 +98,5 @@
             }
 
-            inline const SmartPtr& operator=(const SmartPtr& other)
+            inline SmartPtr& operator=(const SmartPtr& other)
             {
                 SmartPtr(other).swap(*this);
@@ -104,5 +105,5 @@
 
             template <class O>
-            inline const SmartPtr& operator=(const SmartPtr<O>& other)
+            inline SmartPtr& operator=(const SmartPtr<O>& other)
             {
                 SmartPtr(other).swap(*this);
@@ -111,5 +112,5 @@
 
             template <class O>
-            inline const SmartPtr& operator=(const WeakPtr<O>& other)
+            inline SmartPtr& operator=(const WeakPtr<O>& other)
             {
                 SmartPtr(other).swap(*this);
@@ -194,5 +195,5 @@
     SmartPtr<T> dynamic_pointer_cast(const SmartPtr<U>& p)
     {
-        return dynamic_cast<T*>(p.get());
+        return orxonox_cast<T*>(p.get());
     }
 }
Index: code/trunk/src/libraries/core/SubclassIdentifier.h
===================================================================
--- code/trunk/src/libraries/core/SubclassIdentifier.h	(revision 7266)
+++ code/trunk/src/libraries/core/SubclassIdentifier.h	(revision 7268)
@@ -91,5 +91,5 @@
                 @return The SubclassIdentifier itself
             */
-            const SubclassIdentifier<T>& operator=(Identifier* identifier)
+            SubclassIdentifier<T>& operator=(Identifier* identifier)
             {
                 if (!identifier || !identifier->isA(ClassIdentifier<T>::getIdentifier()))
@@ -118,5 +118,5 @@
             */
             template <class O>
-            const SubclassIdentifier<T>& operator=(const SubclassIdentifier<O>& identifier)
+            SubclassIdentifier<T>& operator=(const SubclassIdentifier<O>& identifier)
             {
                 return this->operator=(identifier.getIdentifier());
Index: code/trunk/src/libraries/core/WeakPtr.h
===================================================================
--- code/trunk/src/libraries/core/WeakPtr.h	(revision 7266)
+++ code/trunk/src/libraries/core/WeakPtr.h	(revision 7268)
@@ -35,4 +35,5 @@
 
 #include <cassert>
+#include "Identifier.h"
 #include "OrxonoxClass.h"
 #include "Functor.h"
@@ -82,5 +83,5 @@
             }
 
-            inline const WeakPtr& operator=(int)
+            inline WeakPtr& operator=(int)
             {
                 WeakPtr(0).swap(*this);
@@ -88,5 +89,5 @@
             }
 
-            inline const WeakPtr& operator=(T* pointer)
+            inline WeakPtr& operator=(T* pointer)
             {
                 WeakPtr(pointer).swap(*this);
@@ -94,5 +95,5 @@
             }
 
-            inline const WeakPtr& operator=(const WeakPtr& other)
+            inline WeakPtr& operator=(const WeakPtr& other)
             {
                 WeakPtr(other).swap(*this);
@@ -101,5 +102,5 @@
 
             template <class O>
-            inline const WeakPtr& operator=(const WeakPtr<O>& other)
+            inline WeakPtr& operator=(const WeakPtr<O>& other)
             {
                 WeakPtr(other).swap(*this);
@@ -213,5 +214,5 @@
     WeakPtr<T> dynamic_pointer_cast(const WeakPtr<U>& p)
     {
-        return dynamic_cast<T*>(p.get());
+        return orxonox_cast<T*>(p.get());
     }
 }
